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创建XML文档
Mar 01 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
django rest framework使用django-filter用法
Jul 15 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
JS中的BOM应用
2018/02/02 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
葡萄牙语专业个人求职信
2013/12/10 职场文书
房产委托公证书样本
2014/04/04 职场文书
最新离婚协议书范本
2014/08/19 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
清明节主题班会
2015/08/14 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python