2

&"警告: 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 を実行しても、何も受信しません! また、「そのようなデバイスはありません」というエラーが続くこともあります。

誰でもこの問題を解決できますか?

4

0 に答える 0