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访问MySQL封装的常用类实例
Nov 11 Python
python实现定时播放mp3
Mar 29 Python
python实现将汉字转换成汉语拼音的库
May 05 Python
用Python写一个无界面的2048小游戏
May 24 Python
详解Python之数据序列化(json、pickle、shelve)
Mar 30 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
python pytest进阶之conftest.py详解
Jun 27 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
python实现画出e指数函数的图像
Nov 21 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 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制作静态网站的模板框架(一)
2006/10/09 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
Python专用方法与迭代机制实例分析
2014/09/15 Python
Django自定义认证方式用法示例
2017/06/23 Python
Python元字符的用法实例解析
2018/01/17 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python保存数据到本地文件的方法
2018/06/23 Python
Pytorch的mean和std调查实例
2020/01/02 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
解决python3输入的坑——input()
2020/12/05 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
环境监测与治理技术专业求职信
2014/07/06 职场文书
感谢信的格式
2015/01/21 职场文书
学校实习推荐信
2015/03/27 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
Java异常体系非正常停止和分类
2022/06/14 Java/Android