C语言中串行通信的read()问题

时间:2016-09-02 20:16:13

标签: c serial-port termios

我正在尝试与tty设备(Telit调制解调器,所以AT命令)进行通信,但我在使用read()时遇到了问题。打开和写入工作(我通过在运行代码时打开cat / dev / ttyACM0会话来测试),但read总是返回一个随机地址。我没有搞乱很多终端设置,所以这可能是主要问题。

有人能指出我正确的方向来设置正确的终端属性吗?

目前,在重启Telit芯片后,stty会将这些设置恢复为默认设置(波特率由我设置除外)

>> stty -F /dev/ttyACM0
     speed 921600 baud; line = 0;  
     -brkint -imaxbel

以下是我使用过的一些没有运气的终端设置。

terminal_settings.c_cflag &= ~CSTOPB;
terminal_settings.c_cflag &= ~CRTSCTS;
terminal_settings.c_cflag &= ~ICANON;
terminal_settings.c_cflag |= CREAD;
terminal_settings.c_cc[VTIME] = 0;
terminal_settings.c_cc[VMIN] = 0;

0 个答案:

没有答案