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 读取串口数据的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用Python串口实时显示数据并绘图的例子

    使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Scripts\pip-script.py' is not present."错误 使用 easy_install pip命令就能解决,换一条重新能执行安装的命令 常用方法: ser = serial.Serial(0) 是打开第一个串口 print ser.portstr 能看到第一个串口的标识,wi

  • Python Serial串口基本操作(收发数据)

    1.需要模块以及测试工具 模块名:pyserial 使用命令下载:python -m pip install pyserial 串口调试工具:sscom5.13.1.exe 2.导入模块 import serial 3.打开串口 直接通过new一个Serial()的实例即可打开 返回实例 # encoding=utf-8 import serial if __name__ == '__main__': com = serial.Serial('COM3', 115200) print com 运

  • Python3 串口接收与发送16进制数据包的实例

    如下所示: import serial import string import binascii s=serial.Serial('com4',9600) s.open() #接收 n=s.inwaiting() if n: data= str(binascii.b2a_hex(s.read(n)))[2:-1] print(data) #发送 d=bytes.fromhex('10 11 12 34 3f') s.write(d) s.close() 以上这篇Python3 串口接收与发送1

  • Python使用线程来接收串口数据的示例

    如下所示: #!/usr/bin/env python import serial import time import thread class MSerialPort: message='' def __init__(self,port,buand): self.port=serial.Serial(port,buand) if not self.port.isOpen(): self.port.open() def port_open(self): if not self.port.isO

  • Python 读取串口数据,动态绘图的示例

    最近工作需要把单片机读取的传感器电压数据实时在PC上通过曲线显示出来,刚好在看python, 就试着用了python 与uart端口通讯,并且通过matplotlib.pyplot 模块实时绘制图形出来. 1. 废话少说,上图 因为没有UI,运行时需要在提示符下输入串口相关参数,com端口,波特率... 代码如下: #-*- coding: utf-8 -*- # 串口测试程序 import serial import matplotlib.pyplot as plt import numpy

  • 对python3 Serial 串口助手的接收读取数据方法详解

    其实网上已经有许多python语言书写的串口,但大部分都是python2写的,没有找到一个合适的python编写的串口助手,只能自己来写一个串口助手,由于我只需要串口能够接收读取数据就可以了,故而这个串口助手只实现了数据的接收读取. 创建串口助手首先需要创建一个类,重构类的实现过程如下: #coding=gb18030 import threading import time import serial class ComThread: def __init__(self, Port='COM3

  • python 中Arduino串口传输数据到电脑并保存至excel表格

    起因:学校运河杯报了个项目,制作一个天气预测的装置.我用arduino跑了BME280模块,用蓝牙模块实现两块arduino主从机透传.但是为了分析,还需要提取出数据.因此我用python写了个上位机程序,用pyserial模块实现arduiho和电脑的串口通讯,再用xlwt模块写入excel表格,用time模块获取时间作为excel的文件名. import xlwt import time import serial #设置表格样式 def set_style(name,height,bold

  • python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数据. 下面是python串口通信,但是不是linux的,是我在windows上写的测试demo,python版本是3. python串口读取数据 # TODO 串口读取数据 # Auther wjw import serial # 导入串口包 import time # 导入时间包 ser = se

  • python读取excel数据并且画图的实现示例

    一,要读取的数据的格式: 二,数据读取部分: b站视频参考:https://www.bilibili.com/video/BV14C4y1W7Nj?t=148 # 1930 workbook=xlrd.open_workbook('1930.xlsx') sheet= workbook.sheet_by_index(0) A1=[] B1=[] # sheet.cell_value(i,0):第i行的第0个元素 for i in range(1,sheet.nrows): A1.append(s

  • python读取mysql数据绘制条形图

    本文实例为大家分享了python读取mysql数据绘制条形图的具体代码,供大家参考,具体内容如下 Mysql 脚本示例: create table demo( id int ,product varchar(50) ,price decimal(18,2) ,quantity int ,amount decimal(18,2) ,orderdate datetime ); insert into demo select 1,'AAA',15.2,5,76,'2017-09-09' union a

  • Python读取GSMap数据的问题

    前言 最近需要处理一些GSMap的遥感影像,GSMaP是全球降水计划(GPM)时代最主要的高分辨率降水产品,下载需要申请,然后通过ftp地址进行下载.下载好以后用ENVI打开,发现没有头文件,自定义头文件之后,影像极其的奇怪,大概是下面这个样子,实在不符合想象,如果有同学知道怎么回事,希望您能告知我,感谢.现在我打算用python先转成tif格式. python库 glob:是一个文件操作相关模块,支持通配符操作,可用于查找符合一定条件的文件,这里用来批量查找".dat"文件 nump

  • python 读取摄像头数据并保存的实例

    如下所示: import cv2 cap = cv2.VideoCapture(0) k = 0 while k != 27: # esc ret, img = cap.read(0) cv2.imshow('233', img) k = cv2.waitKey(20) & 0xff print( 'begin to record images-' ) for ii in range(1000): ret, img = cap.read(0) cv2.imshow('233', img) cv2

  • selenium + python 获取table数据的示例讲解

    方法一: <code class="language-python">""" 根据table的id属性和table中的某一个元素定位其在table中的位置 table包括表头,位置坐标都是从1开始算 tableId:table的id属性 queryContent:需要确定位置的内容 """ def get_table_content(tableId,queryContent): arr = [] arr1 = []

  • Python 读取xml数据,cv2裁剪图片实例

    下载的数据是pascal voc2012的数据,已经有annotation了,不过是xml格式的,训练的模型是在Google模型的基础上加了两层网络,因此要在原始图像中裁剪出用于训练的部分图像. 另外,在原来给的标注框的基础上,做了点框的移动.最后同类目标存储在同一文件夹中. from __future__ import division import os from PIL import Image import xml.dom.minidom import numpy as np ImgPa

  • python读取excel数据绘制简单曲线图的完整步骤记录

    python读写excel文件有很多种方法: 用xlrd和xlwt进行excel读写 用openpyxl进行excel读写 用pandas进行excel读写 本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一.xlrd和xlwt的安装 安装很简单,windos+r调出运行窗口,输入cmd,进入命令行窗口,输入以下命令. 安装xlrd: pip install xlrd 安装xlwt: pip install xlwt xlrd的API(applica

随机推荐