我需要使用C语言编写的应用程序中的串口接收数据,在Linux(raspbian)中。
这是用于半双工数据采集(通过RS485),因此当任何设备发送数据时,所有其他设备必须正在监听。
问题是,在raspbian机器的串行端口上收到的每个字符都会被发送回外部设备(在调制解调器术语中为echo
)。即使应用程序未运行,也会发生这种情况。
这必须是串口的配置(在我的情况下是USB转rs232转换器),但我找不到解决这个问题的方法。
stty命令的输出是:
stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
-brkint -imaxbel
由于
答案 0 :(得分:0)
脱离我的头顶,它是
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 '/'