我试图用pyserial发送和接收rs232数据,但我不知道如何正确地发送正确的数据。我所掌握的少量信息解释了数据字符串,并说它应该分成高字节和低字节。我不懂如何把它转化为一点都不懂的地方,我试着读了一遍,但不知道怎么用它来做我的案子。在
所以我有这个数据串通过串行发送。
10,00,00,00,00,00,16,0A,20,20,20,20,00,00,00,00,00,00,00,50
它说要将字节分成高字节和低字节,21个字节然后转换成42个字符的数据字符串。在
有人能帮我解释一下怎么做吗?在
Tags:
如果你想得到一个字节的高低半字节。换句话说,把8位分成4位。在
考虑到数据字符串是一个十六进制字节串,那么您可以简单地执行以下操作:
为
byte = "16"
打印1 6
。然后可以使用int(high, 16)
和int(low, 16)
将其转换为小数。在如果已经使用
^{pr2}$int(byte, 16)
将十六进制转换为十进制,则可以通过执行以下操作来提取高位和低位半字节:因为使用
byte = 0x16
将把0x1 0x6
打印出来,因为使用hex(x)
将它们转换回十六进制。注意,hex(x)
添加了一个0x
前缀。您可以通过执行hex(x)[2:]
来删除它。因此,将您的数据字符串考虑为:
然后打印每一个高低分位可以这样做:
它产生字节、高半字节和低半字节都是十六进制的。
另外,如果你有它的位(}每个都有4位。在
"{0:08b}".format(byte)
),那么你可以像这样分割它high, low = bits[:4], bits[4:8]
,现在{相关问题 更多 >
编程相关推荐