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

如何用Python的serial.write()发送十六进制帧AA68030100000000000000001655?

解决Python serial.write发送十六进制帧的问题

你当前的写法是将字符串字符以UTF-8编码发送,比如字符'A'对应的ASCII码是0x41,所以发送字符串"AA"会得到两个0x41字节,这和你需要的十六进制值0xAA不符。

正确的做法是先把十六进制字符串转换成字节对象,再通过serial.write()发送:

完整帧发送示例

self.raw = "AA68030100000000000000001655"
# 将十六进制字符串转为字节对象
frame_bytes = bytes.fromhex(self.raw)
# 发送字节帧
bus.write(frame_bytes)

单个十六进制字节发送示例

如果只需要发送0xAA,可以直接用:

# 方式1:直接使用字节字面量
bus.write(b'\xAA')
# 方式2:通过fromhex转换
bus.write(bytes.fromhex("AA"))

bytes.fromhex()会自动将每两个连续字符解析为一个十六进制数,转换成对应的字节,完美匹配你需要的{AA}{68}...{55}发送格式。

内容的提问来源于stack exchange,提问作者Joan Guillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:55:23