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中__new__与__init__方法的区别详解
May 04 Python
探究Python多进程编程下线程之间变量的共享问题
May 05 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
Python管理Windows服务小脚本
Mar 12 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Python 识别12306图片验证码物品的实现示例
Jan 20 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
简单介绍Python中的struct模块
2015/04/28 Python
Python实现计算最小编辑距离
2016/03/17 Python
Python配置文件处理的方法教程
2019/08/29 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Python设计密码强度校验程序
2020/07/30 Python
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
护士自荐信范文
2013/12/15 职场文书
校园报刊亭创业计划书
2014/01/02 职场文书
转党组织关系介绍信
2014/01/08 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
人民调解协议书范本
2014/10/11 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2016教师节问候语
2015/11/10 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书