&"警告: GDB: 制御端末の設定に失敗しました: デバイスの不適切な ioctl\n"
bool rs485::rs485ConfigPort()
{
termios portSettings;
memset(&portSettings, 0, sizeof(portSettings));
portSettings.c_cflag |= (CLOCAL | CREAD);
cfsetispeed(&portSettings, B57600);
portSettings.c_cflag &= ~PARENB;
portSettings.c_cflag |= CS8;
portSettings.c_cflag &= ~CSIZE;
portSettings.c_cflag &= ~CSTOPB; //stop bit = 1
//cfmakeraw(&portSettings);
if (tcsetattr(fd, TCSANOW, &portSettings))
{
emit logMessage("Can not adjust port settings");
close(fd);
return false;
}
tcflush(fd, TCIFLUSH);
return true;
}
問題が見つかりました。これは、tcsetattr() が入力/出力エラーを返すためです。デバイスは書き込み権限で開かれています。そして... dmesg |を実行すると grep ttyS0 または S1-3 を実行しても、何も受信しません! また、「そのようなデバイスはありません」というエラーが続くこともあります。
誰でもこの問題を解決できますか?