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实现备份文件实例
Sep 16 Python
跟老齐学Python之大话题小函数(1)
Oct 10 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 Python
tensorflow实现逻辑回归模型
Sep 08 Python
用python代码将tiff图片存储到jpg的方法
Dec 04 Python
python celery分布式任务队列的使用详解
Jul 08 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
python 使用while循环输出*组成的菱形实例
Apr 12 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解析http获取的json字符串变量总是空白null
2015/03/02 PHP
利用php输出不同的心形图案
2016/04/22 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
javascript add event remove event
2008/04/07 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
js断点调试经验分享
2017/12/08 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
简单谈谈python中的语句和语法
2017/08/10 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
python3.6数独问题的解决
2019/01/21 Python
Django视图、传参和forms验证操作
2020/07/15 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
EJB的几种类型
2012/08/15 面试题
优质护理服务演讲稿
2014/05/07 职场文书
2015年药店工作总结
2015/04/20 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript
SQL Server中的游标介绍
2022/05/20 SQL Server