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获取当前时间对应unix时间戳的方法
May 15 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
python基础教程项目四之新闻聚合
Apr 02 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
python 通过文件夹导入包的操作
Jun 01 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
用pip给python安装matplotlib库的详细教程
Feb 24 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中intval()等int转换时的意外异常情况
2013/06/21 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
PHP 读取和编写 XML
2014/11/19 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
express默认日志组件morgan的方法
2018/04/05 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
Python多进程编程技术实例分析
2014/09/16 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
python机器学习库常用汇总
2017/11/15 Python
Python3爬虫学习入门教程
2018/12/11 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Puppeteer使用示例详解
2019/06/20 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
会计自我鉴定
2014/02/04 职场文书
现场施工员岗位职责
2014/03/10 职场文书
应届生自荐信
2014/06/30 职场文书
工程索赔意向书
2014/08/30 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL