C++でCOMポート経由でデバイスと通信するにはどうすればよいですか?これを処理するWindowsライブラリがありますか?COMポート経由のC++通信
ありがとうございます。
EDIT:ImはWindowsを使用しています。
C++でCOMポート経由でデバイスと通信するにはどうすればよいですか?これを処理するWindowsライブラリがありますか?COMポート経由のC++通信
ありがとうございます。
EDIT:ImはWindowsを使用しています。
あなたがGoogleの場合、ウェブ上にサンプルコードがたくさんあります。 http://members.ee.net/brey/Serial.pdf
CreateFile()
やReadFile()
など一般的なファイルI/O API呼び出しを使用してこれを実行できます。 GetCommState()
およびSetCommState()
のような追加のコールを使用すると、シリアルポートを開いた後のさまざまな設定を変更できます。
HANDLE hSerial;
hSerial = CreateFile(
"COM1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if(hSerial==INVALID_HANDLE_VALUE)
{
if(GetLastError()==ERROR_FILE_NOT_FOUND)
{
//serial port does not exist. Inform user.
}
//some other error occurred. Inform user.
}
DCB dcbSerialParams = {0};
dcbSerial.DCBlength=sizeof(dcbSerialParams);
if (!GetCommState(hSerial, &dcbSerialParams))
{
//error getting state
}
dcbSerialParams.BaudRate=CBR_19200;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;
if(!SetCommState(hSerial, &dcbSerialParams))
{
//error setting serial port state
}