pyserial 串口输出16进制数组问题

1.使用pyserial发送16进制数组给下位机,测试代码如下。

def order_list():

a = 'aa0902630000bb'

a_list = []

for i in a.split():

a_list.append(binascii.a2b_hex(i))

return a_list

ser = serial.Serial('/dev/ttyUSB0', 9600)

ser.writelines(order_list())

问题:为什么执行list.append之后,list里面会多一个b?这个‘b’是从哪来的,还是这个b代表的是数据类型?但是如果是数据类型的话,为什么我打印第一个列表元素,为什么这个b也会一起打印出来?
图片描述

回答:

b指bytes object,通常和str object互相转换。

>>> "中文".encode('u8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('u8')

'中文'

回答:

a2b_hex是将字符串指转换成16进制字节码,这是串口通信常用的通信通信方式,a2b和b2a方法是互为逆向的转换,你自己测测就知道了。

以上是 pyserial 串口输出16进制数组问题 的全部内容, 来源链接: utcz.com/a/157963.html

回到顶部