24. Работа с COM портами (CreateFile)
В этой главе будет написана программа, которая работает с COM портом.
Для этого будут использоваться следующие функции:
HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORDdwFlagsAndAttributes, HANDLE hTemplateFile);
и
BOOL WriteFile( HANDLE hFile, LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped );
Первый параметр функции CreateFile - имя файла, но если вы поставите там
имя COM1, то эта функция будет работать с первым COM портом. Также можно поставить:
COM2, COM3, COM4, LPT, CON, AUX.
Ниже приведён кусок кода записи данных в COM порт.
...
...
HANDLE hCOM=CreateFile("COM1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hCOM!=INVALID_HANDLE_VALUE)
{
cout << "COM1 is open OK!" << endl;
char buffer[30];
memset(buffer,0,sizeof(buffer));
strcpy(buffer,"SAVE TO COM1");
DWORD nb;
OVERLAPPED ov;
WriteFile(hCOM,buffer,sizeof(buffer),&nb,&ov);
CloseHandle(hCOM);
}
else cout << "Error Open COM1" << endl;
...
...
Ну вот и всё, приложение готово.