一尘不染

从linux命令行写入串口

linux

从Windows,我可以使用以下命令与串行端口设备进行通信:

mode com1: baud=9600 data=8 parity=n stop=1
copy con com1
alt+18alt+2ctrl+z

设备开始请求的操作。

当我尝试从独立的debian盒子或同一Windows机器的debian virtualbox实例完成相同的操作时,到目前为止我还没有运气。

这是等效的linux命令(至少我这样认为)

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb
echo '\x12\x02' > /dev/ttyS0

什么都没发生。

有人可以指导我正确的方向吗?


阅读 992

收藏
2020-06-07

共1个答案

一尘不染

echo '\x12\x02'

不会被解释,并且会按字面意义将字符串写入\x12\x02(并添加换行符)到指定的串行端口。改为使用

echo -n ^R^B

您可以通过在命令行上输入Ctrl``V``Ctrl``R和来构造它Ctrl``V``Ctrl``B。或者,使用编辑器键入脚本文件更容易。

stty命令应该起作用,除非有其他程序干扰。一个常见的罪魁祸首是gpsd寻找插入的GPS设备。

2020-06-07