You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:18:25