我需要通过串行发送一些数据,但在发送之前,我需要使用模256计算校验和。我可以算出校验和并将其显示为十六进制值(在本例中,校验和为0xb3
),但它显示为0xb3
,但我需要它为\xb3
,因为我在它之前发送其他消息
我已经尝试过编码,字节和字节数组,但无法让它发送十六进制值。它以字符串形式发送'0xb3'
def calculate_csum(message):
message = b'\x60\x08\x46\x52\x41\x50\x5a\x45\x52\x31' #just temp
j = 0
for i in message:
j = j + i
csum = hex(j % 256)
csum = csum.encode("ascii")
print(csum)
full_string = message + csum
print (full_string)
return csum
完整字符串的输出是b'\x08FRAPZER10xb3'
,但是如果我用b'\x60\x08\x46\x52\x41\x50\x5a\x45\x52\x31\xb3'
硬编码它,我会得到b'\x08FRAPZER1\xb3'
它可以工作,所以我需要删除0xb3
并用\xb3
替换它
无需通过旋转将
csum
转换为字符串,然后再转换回字节字符串,首先需要将其作为单个字节相关问题 更多 >
编程相关推荐