python3 读取串口数据 demo

最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值。其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数据。

下面是python串口通信,但是不是linux的,是我在windows上写的测试demo,python版本是3。

python串口读取数据

  1. # TODO 串口读取数据
  2. # Auther wjw
  3. import serial # 导入串口包
  4. import time # 导入时间包
  5. ser = serial.Serial("COM3",115200,timeout = 5) # 开启com3口,波特率115200,超时5
  6. ser.flushInput() # 清空缓冲区
  7. def main():
  8. while True:
  9. count = ser.inWaiting() # 获取串口缓冲区数据
  10. if count !=0 :
  11. recv = ser.read(ser.in_waiting).decode("gbk") # 读出串口数据,数据采用gbk编码
  12. print(time.time()," --- recv --> ", recv) # 打印一下子
  13. time.sleep(0.1) # 延时0.1秒,免得CPU出问题
  14. if __name__ == '__main__':
  15. main()

上边的代码就已经实现python串口读数了,但大部分还需要写入。

串口写入数据

其实就是一个write方法,我开了一个线程,在线程里获取串口出来的数据,然后一个死循环每隔一秒发1,每隔一秒发0.

  1. import serial
  2. import time
  3. import _thread # 导入线程包
  4. data_ser = serial.Serial("COM3",115200,timeout = 5)
  5. data_ser.flushInput()
  6. def get_data():
  7. while True:
  8. data_count = data_ser.inWaiting()
  9. if data_count !=0 :
  10. recv = data_ser.read(data_ser.in_waiting).decode("gbk")
  11. print(time.time()," --- data_recv --> ", recv)
  12. time.sleep(0.1)
  13. if __name__ == '__main__':
  14. _thread.start_new_thread(get_data,()) # 开启线程,执行get_data方法
  15. while 1:
  16. time.sleep(20)
  17. data_ser.write(b'1') # 发送二进制1
  18. time.sleep(20)
  19. data_ser.write(b'0') # 发送二进制0

完成了,应该差不多就这样!

树莓派自带python,但是默认是python2,可以两行命令修改默认python3,命令在我之前的博客。

python3 读取串口数据的更多相关文章

  1. C#SerialPort如何读取串口数据并显示在TextBox上

    SerialPort中串口数据的读取与写入有较大的不同.由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取.一.线程实时读串口:二.事件触发方式实现. 由于线程实时读串口的效率不是十分高 ...

  2. Qt监控Arduino开关状态(读取串口数据)

    setup.ini配置文件内容 [General] #游戏所在主机IP GameIp1=192.168.1.151 GameIp2=192.168.1.152 GameIp3=192.168.1.15 ...

  3. (5)air202读取串口数据并上传到阿里云显示

    一.首先进行云端设置 根据串口助手显示的信息,以及模块文档说明我们可以知道 其中red和ir是红光LED的原始数据, HR表示心率值, HRvalid是心率是否有效标识, SP02是血氧数值,,SPO ...

  4. android 读取串口数据的服务

    2016-09-1813:10:03 继承Service,定义抽象方法onDataReceived,子类通过实现抽象方法获取接收到数据的回调. package com.zrsoft.liftad.se ...

  5. 一种非常巧妙的读取串口数据的方法--C#

    读取不完就一直等待,读完了就立刻走,之前都是设置一个溢出时间,不管是不是早就读取完了都要在这等着,有一定的时间浪费. 注意,用之前要设置好SerialPort类的TimeOut属性:

  6. python3读取excel数据

    import xlrd worksheet = xlrd.open_workbook('XXXX.xlsx')   #打开excel文件 sheet_names= worksheet.sheet_na ...

  7. SerialPort如何读取串口数据并显示在TextBox上,多线程委托

    namespace SerialPort { public partial class Form3 : Form { delegate void UpdateTextEventHandler(stri ...

  8. Arduino读取串口数据并进行字符串分割

    String comdata = ""; int numdata[6] = {0}, PWMPin[6] = {3, 5, 6, 9, 10, 11}, mark = 0; voi ...

  9. python 下串口数据的读取,解析,和保存-

    #!/usr/bin/python # -*-coding: utf-8 -*- import serial import threading import binascii from datetim ...

随机推荐

  1. Electron – 基础学习(2): 项目打包成exe桌面应用 之electron-packager

    项目创建完成,启动正常,接下来就是项目打包了.将测试Demo打包成exe桌面应用,点击exe文件,运行项目. 书接上文,创建项目有三种方式 Git拷贝.直接创建:通过electron社群提供的命令行工 ...

  2. 纪中17日T1 2321. 方程

    纪中17日T1 2321. 方程 (File IO): input:cti.in output:cti.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   Goto ...

  3. 【python基础语法】数字、布尔值(第1天课堂笔记)

    # 导入模块 import keyword # print语句将内容输出到控制台 print("hello world!") # pep8编码规范 # 代码快速格式化快捷键:ctr ...

  4. 将一个Head下的Line复制到另一个Head下(ef+linq)

    今天工作中有一个需求,要求将一个Item下的Line复制到另外一个Item下面 这个需求在工作中很多,按照以往的经验肯定是先delete from,然后再一条条遍历后insert into 这两天正好 ...

  5. 吴裕雄--天生自然HADOOP操作实验学习笔记:hdfs简单的shell命令

    实验目的 了解bin/hadoop脚本的原理 学会使用fs shell脚本进行基本操作 学习使用hadoop shell进行简单的统计计算 实验原理 1.hadoop的shell脚本 当hadoop集 ...

  6. 吴裕雄--天生自然 R语言开发学习:R语言的安装与配置

    下载R语言和开发工具RStudio安装包 先安装R

  7. A - Kvass and the Fair Nut 二分

    The Fair Nut likes kvass very much. On his birthday parents presented him nn kegs of kvass. There ar ...

  8. centos python虚拟环境安装

    pip install virtualenv pip install virtualenvwrapper vim ~/.barshrc export VIRTUALENVWRAPPER_PYTHON= ...

  9. Java不同单词个数统计

    描述 编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数.例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, ...

  10. Pyecharts-数据可视化模块

    Pyecharts 介绍 数据可视化模块 Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可.而Python是一门富有表达力的语言,很适合用于数据处 ...