首先,我还研究了一个看到这个问题在很多地方都得到了回答,但这些答案对我不起作用。
我正在尝试通过串行端口将 ASCII 命令发送到 PCBA,然后尝试接收响应。
硬件设置:
软件:Python 3.8
我已经通过 RS232 终端(realterm)发送了命令,它们运行良好(LED 亮起),但不能用 python 实现相同的功能。有问题的命令是“led_r_on”。是的,我收到“COM5 已打开”提示,这意味着 COM5 还活着。
感谢您的帮助!
代码如下:导入串口导入时间
from time import sleep
from serial import Serial
port = 'COM5'
baud = 115200
ser = serial.Serial(port, baud, timeout=2)
if ser.isOpen():
print(ser.name + ' is open...')
sleep(1)
ser.write(b'led_r_on')
print(ser.readline(1000))
由于您没有提供有关您正在使用的 pcba 的任何信息。我只是假设,您的字节序列中缺少某种结束分隔符。现在有很多方法可以结束串行传输。我遇到的最常见的是这两个:b'led_r_on\r\n'
或者只是b'led_r_on\n'
. 尝试将ser.write()
函数中的字节更改为此。如果这不起作用,您可能需要使用它:b'led_r_on\x04'
这将发送 EOT(传输结束)ASCII 字符。但我不认为这将是必要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句