tty 问题:二进制混乱而不是“文本良好数据”

tty 问题:二进制混乱而不是“文本良好数据”

我正在尝试通过 moxa Uport 1110 USB 转串口设备使用 GPS。 UPort的驱动安装正常,GPS发送NMEA(文本)数据。但是,当我发出命令时

cat /dev/ttyUSB0

我的终端(如果重要的话,它是 UTF8 语言环境)显示一些二进制混乱。在 Windows 下(因此,使用不同的驱动程序,尽管两者都是官方的)它表现良好,我可以看到数据并访问 GPS。

我想知道问题是否出在某些终端设置中。

我之前发布了 stty ispeed 9600,这也是 GPS 可靠配置的原因;我也尝试了 stty ispeed 从低到高,只是遇到了不同类型的混乱。

偶尔,在一些罕见的尝试中会显示出好的文字。

我当前的终端设置是:

 [root@blade gpsd-3.14]# stty -F /dev/ttyUSB0 
 speed 9600 baud; line = 0;
 eof = ^A; min = 1; time = 0;
 -brkint -icrnl -imaxbel
 -opost -onlcr
 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

我感谢任何帮助检测问题所在的帮助。

答案1

根据我的经验(诚然是几年前的经验),当设备关闭时,物理线路特性会重置回默认值。因此,作为独立命令运行stty ... < /dev/ttyUSB0是毫无意义的,因为一旦命令完成,设备就会关闭并重置回默认值。

要解决这个问题必须做这样的事情

sleep 3600 </dev/ttyUSB0 &    # Open the device and keep it open (for 1hr)
stty ... </dev/ttyUSB0        # Set the desired characteristics
cat /dev/ttyUSB0              # Read from the device
...
kill %1                       # Finished with the "sleep"

相关内容