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正则表达式re模块详解
Jun 25 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
python监控文件并且发送告警邮件
Jun 21 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
基于Python函数和变量名解析
Jul 19 Python
Python中pymysql 模块的使用详解
Aug 12 Python
python查看数据类型的方法
Oct 12 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
Python 远程开关机的方法
Nov 18 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
PHP自动更新新闻DIY
2006/10/09 PHP
php 日期时间处理函数小结
2009/12/18 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
调整小数的格式保留小数点后两位
2014/05/14 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
python映射列表实例分析
2015/01/26 Python
python实现Decorator模式实例代码
2018/02/09 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
毕业生就业自荐书
2013/12/15 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
安全生产承诺书
2014/03/26 职场文书
项目建议书怎么写
2014/05/15 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL