首先,我还研究了一个看过的问题,这个问题在很多地方都得到了答案,但答案对我不起作用。
我试图通过串口向PCBA发送ASCII命令,然后尝试接收响应。
HW装置:
SW: Python3.8
我已经通过RS232终端发送了命令(实时的),它们完美地工作(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))发布于 2021-08-14 09:04:42
因为您没有提供任何有关您正在使用的pcba的信息。我将假设,在您的字节序列中,您缺少了某种结束分隔符。现在有很多方法来结束串行传输。我遇到的最常见的两种情况是:b'led_r_on\r\n'或只是b'led_r_on\n'。尝试将ser.write()函数中的字节更改为以下内容。如果这不起作用,您可能需要使用这个:b'led_r_on\x04',这将发送EOT (传输结束) ASCII字符。但我不认为这是必要的。
https://stackoverflow.com/questions/68775467
复制相似问题