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在windows下实现备份程序实例
Jul 04 Python
Python中zip()函数用法实例教程
Jul 31 Python
Python迭代器和生成器介绍
Mar 06 Python
Django中几种重定向方法
Apr 28 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 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
层叠菜单的动态生成
2006/10/09 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php实现点击可刷新验证码
2015/11/07 PHP
php日期操作技巧小结
2016/06/25 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
客户表扬信范文
2014/01/10 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
人事任命书范文
2014/06/04 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
高中校园广播稿
2014/10/21 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
与死神共舞观后感
2015/06/15 职场文书
学雷锋活动简报
2015/07/20 职场文书