python 读取串口数据的示例

 更新时间:2020年11月09日 11:18:17   作者:二队  
这篇文章主要介绍了python 读取串口数据的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

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 自动安装 Rising 杀毒软件

    Python 自动安装 Rising 杀毒软件

    平日里经常需要重新安装杀毒软件,我使用的是 Rising 该软件可以将升级后的新版本,压缩成一个安装包,当升级失败造成硬盘中的 Rising
    2009-04-04
  • 在Python的while循环中使用else以及循环嵌套的用法

    在Python的while循环中使用else以及循环嵌套的用法

    这篇文章主要介绍了在Python的while循环中使用else以及循环嵌套的用法,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • Python实现遍历子文件夹并将文件复制到不同的目标文件夹

    Python实现遍历子文件夹并将文件复制到不同的目标文件夹

    这篇文章主要介绍了如何基于Python语言实现遍历多个子文件夹,将每一个子文件夹中大量的文件,按照每一个文件的文件名称的特点复制到不同的目标文件夹中,感兴趣的可以了解下
    2023-08-08
  • Python导入oracle数据的方法

    Python导入oracle数据的方法

    这篇文章主要介绍了Python导入oracle数据的方法,涉及Python读取csv文件信息再插入到Oracle数据库的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PyCharm中安装PIL/Pillow的方法

    PyCharm中安装PIL/Pillow的方法

    这篇文章主要介绍了PyCharm中PIL/Pillow的安装,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小

    在撰写论文时常常会用到matplotlib来绘制三维散点图,下面这篇文章主要给大家介绍了关于matplotlib之Pyplot模块绘制三维散点图使用颜色表示数值大小的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • opencv python统计及绘制直方图的方法

    opencv python统计及绘制直方图的方法

    这篇文章主要介绍了opencv python统计及绘制直方图的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • python基于chardet识别字符编码的方法

    python基于chardet识别字符编码的方法

    chardet 是一个流行的 Python 库,用于检测文本文件的字符编码,本文就来介绍一下python基于chardet识别字符编码的方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • Django重设Admin密码过程解析

    Django重设Admin密码过程解析

    这篇文章主要介绍了Django重设Admin密码过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python Pygame实战之超级炸弹人游戏的实现

    Python Pygame实战之超级炸弹人游戏的实现

    如今的玩家们在无聊的时候会玩些什么游戏呢?王者还是吃鸡是最多的选择。但在80、90年代的时候多是一些很简单的游戏:《超级玛丽》、《魂斗罗》等。本文将利用Pygame制作另一个经典游戏—炸弹人,感兴趣的可以了解一下
    2022-03-03

最新评论