使用pyserial发送二进制数据

2024-05-16 04:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道已经有很多关于这个的讨论,但是我还有一个问题。我试图通过pyserial将十六进制值发送到使用pyserial的设备

command="\x89\x45\x56"
ser.write(command)

但是我一直有一个错误,说string argument without encoding.有人知道如何解决这个问题吗?


Tags: string错误argumentcommandserencodingwritewithout
3条回答

如果这是Python 3,它可能会将字符串视为unicode,并且不知道如何转换它。我想您可能是想在这里使用字节:

command=b"\x89\x45\x56"

我已经成功地从如下字符串发送十六进制值:

input = '736e7000ae01FF'    
ser.write(input.decode("hex"))
print "sending",input.decode("hex")

>> sending snp «☺ 
packet = bytearray()
packet.append(0x41)
packet.append(0x42)
packet.append(0x43)

ser.write(packet)

相关问题 更多 >