串口 接收的 二进制数据: 82 30 B1 30 30 03 C3 B4
代码如下:


# 82 30 B1 30 30 03 C3 B4
data = b'\x820\xb100\x03\xc3\xb4'
print('type(data) = ', type(data))
type(data) = <class ‘bytes’>
解析

发送的时候 ,bytearray 会不会自动 转换为 bytes 类型了.
从 读串口的API中返回的是 一个 bytes 类型的数据结构
当打印 这个 bytes 类型的数据的时候,
相当于用winhex 这个工具, 查看一个图片文件,有的地方是可见字符,有个地方是不可见字符
b’\x820\xb100\x03\xc3\xb4’
<class ‘bytes’>
对应的是
\x82 0 \xb1 0 0 \x03 \xc3 \xb4
82 30 B1 30 30 03 C3 B4

bytes不可修改,bytearray可以修改

111
data = b'\x820\xb100\x03\xc3\xb4'
print('type(data) = ', type(data))
#type(data) = <class 'bytes'>
lst = list(data)
print(lst)
print(type(lst[0]))
#[130, 48, 177, 48, 48, 3, 195, 180]
#<class 'int'>
tmp = data.hex()
print(type(tmp), tmp)
# <class 'str'> 8230b1303003c3b4
strr = '8230b1303003c3b4'
num = bytes.fromhex(strr)
print(type(num), num)
# <class 'bytes'> b'\x820\xb100\x03\xc3\xb4'

本文探讨了串口接收的二进制数据解析过程,包括如何将二进制数据转换为bytes类型,并展示了如何使用Python进行数据类型的转换,如bytes到list、bytes到hex字符串及从hex字符串还原为bytes。
9897

被折叠的 条评论
为什么被折叠?



