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列表计数及插入实例
Dec 17 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
Python字符串格式化的方法(两种)
Sep 19 Python
matplotlib绘制动画代码示例
Jan 02 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
python 执行shell命令并将结果保存的实例
May 11 Python
python顺序执行多个py文件的方法
Jun 29 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
Python爬虫实例——爬取美团美食数据
Jul 15 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
Python实现我的世界小游戏源代码
Mar 02 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
一个目录遍历函数
2006/10/09 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
javascript中new关键字详解
2015/12/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python如何绘制日历图和热力图
2020/08/07 Python
python代码实现猜拳小游戏
2020/11/30 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
服务承诺书怎么写
2014/05/24 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
上甘岭观后感
2015/06/10 职场文书
装修公司管理制度
2015/08/05 职场文书
生日寿星公答谢词
2015/09/29 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL