Python使用pyserial向串口发送十六进制0x01的正确方法
Python串口发送十六进制0x01无响应问题
各位社区开发者好:
我需要使用Python向串口发送十六进制格式的01(注意不是字符'1'),以下是我最初编写的实现代码:
from serial import Serial sePort = Serial() sePort.port = "COM3" sePort.baudrate = 9600 sePort.timeout = 1.0 sePort.writeTimeout =0.1 sePort.open() sePort.write(0x01) # 我还尝试了以下以及其他能想到的写法,但都没有成功 # sePort.write(0x0001) # sePort.write(0x000001)
如果我正确发送了十六进制值01,应当能收到设备返回的响应(该逻辑已经通过第三方软件测试验证),但我尝试了所有能想到的写法,收到的返回结果都是空字符串,在此向大家求助,感谢各位抽出时间解答。
问题解决
根据hoboman提供的方案,使用b"\x01"或者int.to_bytes(1, 1, 'little')两种写法都可以完美实现需求,对应代码如下:
sePort.write(b"\x01") sePort.write(int.to_bytes(1, 1, 'little'))
替换写入参数后即可正常收到设备返回的响应,问题解决。
内容的提问来源于stack exchange,提问作者Bill W
相关产品推荐
相关产品推荐

