linux (raspbian) 中的串口

serial port in linux (raspbian)

我需要在用 C 编写的应用程序中使用串口接收数据,在 Linux (raspbian) 中。

这是用于半双工数据采集(通过 RS485),因此当任何设备发送数据时,所有其他设备都必须监听。

问题是 raspbian 机器的串行端口上接收到的每个字符都被发送回外部设备(在调制解调器术语中 - echo)。即使应用程序不是 运行.

也会发生这种情况

这一定是串口的配置(在我的例子中是 USB 到 rs232 转换器),但我找不到解决这个问题的方法。

stty 命令的输出为:

stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
-brkint -imaxbel

谢谢

我没想到,

stty -F /dev/ttySX raw -echo -echoe -echok -echoke

手册页中可能还有更多标志:

   [-]crterase
          echo erase characters as backspace-space-backspace

   * crtkill
          kill all line by obeying the echoprt and echoe settings

   * -crtkill
          kill all line by obeying the echoctl and echok settings

   * [-]ctlecho
          echo control characters in hat notation ('^c')

   [-]echo
          echo input characters

   * [-]echoctl
          same as [-]ctlecho

   [-]echoe
          same as [-]crterase

   [-]echok
          echo a newline after a kill character

   * [-]echoke
          same as [-]crtkill

   [-]echonl
          echo newline even if not echoing other characters

   * [-]echoprt
          echo erased characters backward, between '\' and '/'