gpt4 book ai didi

python - python 2.7中使用bytearray向中继板串口发送十六进制命令

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:40 25 4
gpt4 key购买 nike

我需要发送十六进制命令到中继板的串口。

我以前使用过如下命令:

relay.write(bytearray([0xFF]))     

这有效,但如果我想使用像这样的变量

m = 255

relay.write(bytearray([hex (m)]))

显示错误:字符串大小必须为 1

有什么错误吗?

最佳答案

在您的第一个代码段中,[0xff] 是一个列表,其中包含以十六进制形式编写的整数 255。您可以编写 [255] 而不是 [0xff],它们编译为相同的字节码。因此,要用变量 m 替换该整数,您可以这样做

m = 255
relay.write(bytearray([m]))

FWIW,您的第一个片段也可以写为

relay.write(bytearray('\xff'))

它使用包含单个 ff 字节的十六进制字符串初始化 bytearray

bytearray([hex(m)]) 不起作用,因为 hex(255) 是一个包含四个字节的字符串:'0xff',即数字 0,后跟字母 xff

关于python - python 2.7中使用bytearray向中继板串口发送十六进制命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37787507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com