#include <stdlib.h>
#include <windows.h>
HANDLE GetSerialPort(char *);
int main(void)
{
HANDLE h1, h2;
char h1_buffer[] = ("Hello from Com1:");
char h2_buffer[24];
DWORD byteswritten = 0, bytesread = 0;
char c1[] = {"COM3"};
char c2[] = {"COM4"};
h1 = GetSerialPort(c1);
h2 = GetSerialPort(c2);
WriteFile(h1, h1_buffer, 17, &byteswritten, NULL);
ReadFile(h2, h2_buffer, strlen(h1_buffer) + 1, &bytesread, NULL);
if (bytesread)
printf("%s\n", h2_buffer);
else
printf("Nothing read\n");
CloseHandle(h1);
CloseHandle(h2);
getch();
}
HANDLE GetSerialPort(char *p)
{
HANDLE hSerial;
hSerial = CreateFile(p,
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
DCB dcbSerialParams = {0};
dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
dcbSerialParams.BaudRate=CBR_19200;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;
SetCommState(hSerial, &dcbSerialParams);
return hSerial;
}