• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python 读取串口数据的示例

python 搞代码 4年前 (2022-01-07) 34次浏览 已收录 0个评论

这篇文章主要介绍了python 读取串口数据的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

python3 读取串口数据 demo

最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值。其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数据。
下面是python串口通信,但是不是linux的,是我在windows上写的测试demo,python版本是3。

python串口读取数据

 # TODO 串口读取数据 # Auther wjw import serial # 导入串口包 import time # 导入时间包 ser = serial.Serial("COM3",115200,timeout = 5) # 开启com3口,波特率115200,超时5 ser.flushInput() # 清空缓冲区 def main(): while True: count = ser.inWaiting() # 获取串口缓冲区数据 if count !=0 : recv = ser.read(ser.in_waiting).decode("gbk") # 读出串口数据,数据采用gbk编码 print(time.time()," --- recv --> ", recv) # 打印一下子 time.sleep(0.1) # 延时0.1秒,免得CPU出问题 if __name__ == '__main__': main()

上边的代码就已经实现python串口读数了,但大部分还需要写入。

串口写入数据

其实就是一个write方法,我开了一个线程,在线程里获取串口出来的数据,然后一个死循环每隔一秒发1,每隔一秒发0.

 import serial import time import _thread  # 导入线程包 data_se<a style="color:transparent">来源gao($daima.com搞@代@#码网</a>r = serial.Serial("COM3",115200,timeout = 5) data_ser.flushInput() def get_data(): while True: data_count = data_ser.inWaiting() if 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__ == '__main__': _thread.start_new_thread(get_data,()) # 开启线程,执行get_data方法 while 1: time.sleep(20) data_ser.write(b'1') # 发送二进制1 time.sleep(20) data_ser.write(b'0') # 发送二进制0

完成了,应该差不多就这样!
树莓派自带python,但是默认是python2,可以两行命令修改默认python3

 sudo rm /usr/bin/python
 sudo ln -s /usr/bin/python3.4 /usr/bin/python

以上就是python 读取串口数据的示例的详细内容,更多关于python 读取串口数据的资料请关注gaodaima搞代码网其它相关文章!

以上就是python 读取串口数据的示例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python 读取串口数据的示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址