Pyhton是一个很棒的语言,感觉用起来就像是Arduino一样很多东西都被封装好了我只用使用面向对象的思维去调用函数就可以了,但是Python不善于去编写一些过于低层的驱动什么的因为Python在一定程度上效率很低,所以为了更好的利用Python我们通常将Python和Arduino或者STM32一起使用,上端交给Python下端交个单片机。
二者的连接使用串口,一般情况下为了提高数据传输过程中的载荷,通常使用十六进制收发。今天就说说这么使用Python收发十六进制数据
- 通过pip指令安装serial库
- 在程序头包含serial库,话不多说直接上程序:
import serial
import time #延时使用
import binascii
s = serial.Serial("COM3", 9600) #初始化串口
while True:
Hex_str = bytes.fromhex('10 11 12 34 3f') #文本转换Hex
#=bytes.fromhex('10 11 12 34 3f')
s.write(Hex_str) #串口发送 Hex_str()
#接收
n=s.inWaiting() #串口接收
if n:
data= str(binascii.b2a_hex(s.read(n)))[2:-1] #Hex转换成字符串
print(data) #字符串输出
time.sleep(1)
注:上面的程序都是在windows平台下运行的(如果是在Linux下运行只需要将代码第四行中的‘COM3’改为‘/dev/ttyS3’即可)在调试的时候推荐大家使用虚拟串口(Configure Virtual Serial Port Driver)这个软件,他可以虚拟的将计算机中的两个com口进行关联。