标签:11 microPython aa struct 二进制 数字 unpack pack
首先,玩硬件离不开二进制,无论使用多高级的语言,最后都要回到二进制的各种通信,那么作为MICROPYTHON 这种高级的多的语言在这个位置就有些尴尬,相信很对学过标准PYTHON甚至干过Python开发的都很可能没接触过,也不会二进制的传输。所以本次记录是struct在MICROPYTHON里的应用,平台是ESP32
首先要引用 import struct
struct
pack(A,*B)
A:是一个字符串,但是它代表输出的格式
B:是一堆参数代表要处理的内容
这玩意 pack()是打包 unpack()解包
struct.pack(‘BBB’,1,2,3)#这个 B对应每一个数字3个数字三个B
=>b'\x01\x02\x03'
ct.unpack('bbb',b'\x01\x03\x05')#可以直接把流数据解析出元祖来
=>(1, 3, 5)
aa=b'\xaa\xf9\xce\x04Q\x0f\xf2U'
struct.unpack('8B',aa)#字母前的数字表示几个字母,
等价于八个B==>struct.unpack(‘bbbbbbbb’,aa)
=>(170, 249, 206, 4, 81, 15, 242, 85)
通过B H 组合能解析数据。顺便都能算出来 都不用移位计算了
这里有个注意事项:
a=(1,2,3)
b=struct.pack(‘BBB’,1,2,3)
关于pack(’>bbb’,1,2,3)的
一年后的补充,
可以解析浮点数比如
cc=struct.unpack('>f',b'\x3f\x9e\x04\x19')
#单精度浮点数用f ,四个字节一个数字,前面加个> 表示大端
结果:(1.2345,)
这个配合485通信可以直接传输小数,尤其是淘宝上的485数码管基本就可以直接用这玩意传输直接显示。
下面是
大端高位在左 人类喜欢
小端高位在右 计算机喜欢
标签:11,microPython,aa,struct,二进制,数字,unpack,pack 来源: https://blog.csdn.net/gaoke11240/article/details/121314008
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。