介绍
这期内容当中小编将会给大家带来有关如何利用python实现读取串口的数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强> python3读取串口数据演示强>
最近在写一个演示,zigbee串口连接树莓派,树莓派使用串口通信接受无线个域网穿过来得值。其中我是用的树莓派是3代B +,无线个域网每隔三秒钟从串口输出数据。
下面是python串口通信,但是不是linux的,是我在窗户上写的测试演示,python版本是3 .
<强> python串口读取数据强>
# TODO串口读取数据 #作者wjw 进口系列#导入串口包 导入时间#导入时间包 ser=serial.Serial(115200年“COM3"超时=5)#开启com3口,波特率115200,超5时 ser.flushInput() #清空缓冲区 def main (): 而真正的: 数=ser.inWaiting() #获取串口缓冲区数据 如果计数!=0: recv=ser.read (ser.in_waiting) .decode (“gbk") #读出串口数据,数据采用gbk编码 print (time.time (),“- - - recv——比;“recv) #打印一下子 time . sleep(0.1) #延时0.1秒,免得CPU出问题 if __name__==& # 39; __main__ # 39;: main ()
上边的代码就已经实现python串口读数了,但大部分还需要写入。
<强>串口写入数据强>
其实就是一个写方法,我开了一个线程,在线程里获取串口出来的数据,然后一个死循环每隔一秒发1,每隔一秒发0。
进口系列 导入的时间 进口_thread #导入线程包 data_ser=serial.Serial(115200年“COM3"超时=5) data_ser.flushInput () def get_data (): 而真正的: data_count=data_ser.inWaiting () 如果data_count !=0: recv=data_ser.read (data_ser.in_waiting) .decode (“gbk") print (time.time (),“- - - data_recv——比;“recv) time . sleep (0.1) if __name__==& # 39; __main__ # 39;: _thread.start_new_thread (get_data()) #开启线程,执行get_data方法 而1: time . sleep (20) data_ser.write (b # 39; 1 & # 39;) #发送二进制1 time . sleep (20) data_ser.write (b # 39; 0 & # 39;) #发送二进制0
完成了,应该差不多就这样!
树莓派自带python,但是默认是python2,可以两行命令修改默认python3
sudo rm/usr/bin/python
sudo ln - s/usr/bin/python3.4/usr/bin/python
上述就是小编为大家分享的如何利用python实现读取串口的数据了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。