Python读取串口数据
- 使用Python读取串口数据
- 1.编程流程
- 2.应用serial库
- 3.编码设计
- 4.编程实现
使用Python读取串口数据
1.编程流程
串口数据流程为,
1.实例化串口连接,
2.初始化设置连接属性,
3.连接串口硬件,
4.读取传输缓存区的串口数据。
使用Python的serial库进行读写串口数据。
pip3 install serial
技巧:重复运行上述pip指令,可输出当前serial依赖库的存放位置。
参考教程:https://www.jb51.net/article/170801.htm.
2.应用serial库
分析1中功能流程,进行如下汇总:
- 串口连接配置1:实例化串口连接
- 串口连接配置2:配置串口参数,并连接串口
- 串口连接配置3:读取串口数据
- 加上功能:核验接收数据
3.编码设计
将上面的功能,进行如下进行设计:
- 串口参数配置设为变量,初始化串口连接时进行调用
- 读取串口数据,写入文件
- 判断:串口数据数据格式,每包数据长度
4.编程实现
- 编写函数,实现读取串口操作
def msg_list():
msg_list = list()
r = r'E:\py\0.txt'
write_file = open(r, 'wb')
port = 'COM3'
bps = 1152000
timex = 1
ser = serial.Serial(port, bps, timeout=timex)
print(ser)
time.sleep(3)
while True:
if ser.in_waiting:
msg = ser.readall()
write_file.write(msg)
msg_list = list(msg.hex)
else:
ser.close()
write_file.close()
break
return msg_list
有了一组串口数据,后续就可以自定义发挥了。
if __name__ == '__main__':
a = msg_list()
a1 = [a[i:i+162*2]] for i in range(0, len(items), 162*2)
for i in range(0, len(a1)):
if a1[i][0:4] = ['a', 'b', 'c', 'd'] and len(a[i]) == 160*2:
pass
else:
print('到了', i)
print(a1[i-1])
print(a1[i])
break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)