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 yield使用方法示例
Dec 04 Python
Python写的Discuz7.2版faq.php注入漏洞工具
Aug 06 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
Python批量合并有合并单元格的Excel文件详解
Apr 05 Python
Python3匿名函数用法示例
Jul 25 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
python字符串替换re.sub()方法解析
Sep 18 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
pycharm导入源码的具体步骤
Aug 04 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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 开源AJAX框架14种
2009/08/24 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Python request中文乱码问题解决方案
2020/09/17 Python
python 实现的车牌识别项目
2021/01/25 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
爱与责任演讲稿
2014/05/20 职场文书
企业安全生产承诺书
2014/05/22 职场文书
党校个人总结
2015/03/04 职场文书
评职称个人总结
2015/03/05 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle