我有这个代码:
def checksum_calc(data):
checksum = 0
for ch in data:
checksum += ord(ch)
return hex(checksum % 256)
checksum=checksum_calc('xAAx41xA1x0Ex63x02x15x0Ax3Fx00x00x00x00')
test=[0xAA,0x41,0xA1,0x0E,0x63,0x02,0x15,0x0A,0x3F,0x00,0x00,0x00,0x00,checksum]
ser.write(serial.to_bytes(test))
我需要串行发送的数据是可变的,可以根据代码的其他部分进行更改,因此我需要计算数据的校验和,然后使用serial.to_bytes发送
当我运行代码时,它返回:string must be of size 1
但是checksum_calc函数运行良好,但我无法将其结果放入测试变量并将其发送到串行。
如何将校验和结果放入测试变量中?
我在这里找到了答案: 将字符串发送到serial.to_bytes不起作用
我必须这样做
test= ['0xAA','0x41','0xA1','0x0E','0x63','0x02','0x15','0x0A','0x3F','0x00','0x00','0x00','0x00',checksum]
int_values = [int(h, base=16) for h in test]
但我赞成第二次批准