python 读取串口数据的示例


Posted in Python onNovember 09, 2020

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_ser = 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 读取串口数据的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python求列表交集的方法汇总
Nov 10 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
pandas多级分组实现排序的方法
Apr 20 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
Django实现WebSSH操作物理机或虚拟机的方法
Nov 06 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 #Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 #Python
基于python爬取梨视频实现过程解析
Nov 09 #Python
Python eval函数介绍及用法
Nov 09 #Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 #Python
python 用struct模块解决黏包问题
Nov 07 #Python
python hmac模块验证客户端的合法性
Nov 07 #Python
You might like
php防止sql注入代码实例
2013/12/18 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
javascript框架设计读书笔记之种子模块
2014/12/02 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
Python PO设计模式的具体使用
2019/08/16 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
struct与class的区别
2014/02/03 面试题
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
JAVA招聘远程笔试题
2015/07/23 面试题
2014年高三毕业生自我评价
2014/01/11 职场文书
目标管理责任书
2014/04/15 职场文书
运动员口号
2014/06/09 职场文书
在职党员进社区活动总结
2014/07/05 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
教师节慰问信
2015/02/15 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS