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中处理字符串之isdecimal()方法的使用
May 20 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
python skimage 连通性区域检测方法
Jun 21 Python
python中cPickle类使用方法详解
Aug 27 Python
python 将对象设置为可迭代的两种实现方法
Jan 21 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php搜索文件程序分享
2015/10/30 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
详解js类型判断
2018/05/22 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
旅游管理专业个人求职信范文
2013/12/24 职场文书
大学社团计划书
2014/05/01 职场文书
环境保护标语
2014/06/20 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
公司经营目标责任书
2015/01/29 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python