我可以在linux shell中使用以下命令通过UART与设备通信:
echo 'CMD' > /dev/ttyPS1
我试图使用Pyserial模块在Python中重新创建这个操作,但是什么也没有发生。我尝试在.py文件和2.7解释器内部使用它(以防出现时间延迟问题)。在
^{pr2}$有趣的是。。。在运行python代码段之后,我无法使用linuxshell写入设备。stty向我展示了Pyserial为设备添加了一系列选项。如果我清除这些额外的选项,那么我就可以使用linuxshell再次与我的设备进行通信。在
Python脚本之前:
>>> stty -F /dev/ttyPS1
speed 115200 baud; line = 0;
-brkint -imaxbel
在Python脚本之后:
>>> stty -F /dev/ttyPS1
speed 115200 baud; line = 0;
min = 0; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
为什么会发生这种行为?有没有办法让Pyserial像linuxshell一样工作?在
如果您真的想让
pyserial
在不更改所有这些标志的情况下打开设备文件,或者显式地让它将标志更改为它们已经具有的值,那么您可能可以使用一系列选项参数来实现这一点,也可以在构造之后设置一些属性或调用一些方法。在但你为什么要这么做?在
如果您只想执行
echo
的等效操作,只需执行shell和echo
命令所做的操作:将设备文件作为文件打开并写入。在所以,其中之一:
如果您使用的是Python 2.x,则不需要
^{pr2}$b
前缀,并且没有.raw
,但其他情况类似:相关问题 更多 >
编程相关推荐