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实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python中的__slots__示例详解
Jul 06 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
python实现定时发送qq消息
Jan 18 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
php的字符串用法小结
2010/06/08 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
Vuex 入门教程
2018/01/10 Javascript
js实现搜索栏效果
2018/11/16 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python解析树及树的遍历
2016/02/03 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
小学红领巾中秋节广播稿
2014/01/13 职场文书
活动总结书
2014/05/08 职场文书
校运会口号
2014/06/18 职场文书
迎七一演讲稿
2014/09/12 职场文书
教师岗位职责
2015/02/03 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
pandas求平均数和中位数的方法实例
2021/08/04 Python
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
Python中itertools库的四个函数介绍
2022/04/06 Python