在pyserial上有问题吗

2024-06-16 10:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试与a piece of machinery沟通。 我使用手动CMD验证了COM端口和波特率以及8N1设置和打开端口等。 本手册指示使用\作为电报的起始字节,使用/作为电报的结束字节

当我运行它时,它基本上只是挂断,不确定我做错了什么

import serial char
ser = serial.Serial('COM6' , 115200)
ser.is_open
ser.write(b'\p/')
s = ser.read(9)
print(s)

Code


Tags: of端口importcmdcompiece字节serial
3条回答

你可以这样试试。我没有设备来验证它

import serial
ser = serial.Serial('COM6' , 115200)

if ser.isOpen(): # Check is Serial is Open
    ser.write(b'\p/') # Write to Serial
    sleep(2) # Sleep for 2 seconds
    s = ser.read(9) # Read from Serial
else:
   print("Serial is not open")

从手册中,它将“p”命令的返回代码显示为一个或两个字符。如果您试图在未设置超时的情况下读取9个字节,它将挂起,直到收到9个字节。在短暂延迟后,尝试使用ser.read_all()

非常有用=赛普拉萨德·巴拉苏布拉曼尼安+Mike67+Bukzor+SuzukiBKing 你的建议使我成功了。我计划稍后添加条件,thx SB;)

    import serial
    import time
    ser = serial.Serial('COM6' , 115200)
    ser.write(bytearray([47, 112, 92]))
    time.sleep(2)
    s = ser.read_all()
    print(s) 

相关问题 更多 >