一 概念
1.简介
该源码可以让串口收发数据并行处理。
2.特性
  • 使用了线程
  • 使用了serial
  • 使用了class
二 源码解析
1.串口读取固定数据函数:
def uart_recv_header(serial):
cnt=0
while True:
data=serial.port.read()
if data == b'\xff':
data_next=serial.port.read()
if data_next == b'\xff':
cnt += 1
data_lens=serial.port.read(2)
data_audio=serial.port.read(2)
count=len(data_audio)/2
var=struct.unpack('h'*int(count),data_audio)
print(float(var[0]/100))

2.串口发送函数:

    def send_data(self,data):
n = self.port.write((data+'\n').encode())
return n

3.整体源码:

import serial
import struct
import threading def uart_recv_header(serial):
cnt=0
while True:
data=serial.port.read()
if data == b'\xff':
data_next=serial.port.read()
if data_next == b'\xff':
cnt += 1
data_lens=serial.port.read(2)
data_audio=serial.port.read(2)
count=len(data_audio)/2
var=struct.unpack('h'*int(count),data_audio)
print(float(var[0]/100)) class SerialPort:
def __init__(self,port,brate):
super(SerialPort,self).__init__()
self.port = serial.Serial(port,brate)
self.port.close() if not self.port.isOpen():
self.port.open()
def port_open(self):
if not self.port.isOpen():
self.port.open()
def port_close(self):
self.port.close()
def send_data(self,data):
n = self.port.write((data+'\n').encode())
return n
def read_data(self):
# switch your send data func
uart_recv_header(self) port ='/dev/ttyUSB1'
brate = 115200 if __name__ == '__main__':
mSerial = SerialPort(port,brate) thread1 = threading.Thread(target=mSerial.read_data)
thread1.start()
三 总结
1.这个比较清晰,适合简单的串口处理使用。

基于python的多线程串口处理实例源码解析的更多相关文章

  1. [Java多线程]-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  2. Java并发包源码学习系列:基于CAS非阻塞并发队列ConcurrentLinkedQueue源码解析

    目录 非阻塞并发队列ConcurrentLinkedQueue概述 结构组成 基本不变式 head的不变式与可变式 tail的不变式与可变式 offer操作 源码解析 图解offer操作 JDK1.6 ...

  3. .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析

    介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...

  4. [Java多线程]-Thread和Runable源码解析

    多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提 ...

  5. Java并发包源码学习系列:线程池ThreadPoolExecutor源码解析

    目录 ThreadPoolExecutor概述 线程池解决的优点 线程池处理流程 创建线程池 重要常量及字段 线程池的五种状态及转换 ThreadPoolExecutor构造参数及参数意义 Work类 ...

  6. 基于Docker的TensorFlow机器学习框架搭建和实例源码解读

    概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...

  7. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  8. JAVA上百实例源码以及开源项目

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...

  9. JAVA上百实例源码网站

    JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...

  10. 45个android实例源码

    分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.html andriod闹钟源代码http://www.apkbus.com ...

随机推荐

  1. 《Java 面经手册》PDF,417页11.5万字,完稿!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 我膨胀了 ,在看了大部分以面试讲解的 Java 文章后,发现很多内容的讲解都偏向于翻 ...

  2. 记一次在服务器上运行node.js程序时无法通过nohup xxx & 方式挂起的问题

    由于业务需求 每天要在服务器上整理一组数据,为了方便就用node.js来写了.但是运行的时候发现了一个问题 明明使用了nohup main.js &的方式后台运行了程序 但是一旦我关闭了she ...

  3. 使用CAShapeLayer,UIBezierPath,CAGradientLayer构建边框颜色会旋转的六边形

    主要思路是: 1.使用UIBezierPath绘制一个六边形路径 2.创建一个CAShapeLayer图层,将这个六边形path设置到CAShapeLayer属性上.然后设置fillColor为透明, ...

  4. CommentTest

    public class CommentTest{ /* 这是多行注释 可以声明多行注释的信息 1. Java注释的种类: 单行注释,多行注释,文档注释(Java特有) 2. 单行注释,多行注释 ① ...

  5. <semaphore.h> 和 <sys/sem.h> 的区别

    <sys/sem.h>为 XSI(最初是 Unix System V)信号量提供接口. 这些不是基本 POSIX 标准的一部分(它们在 XSI 选项中,主要是为了传统的 Unix 兼容性) ...

  6. .NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记

    2.4.5 EF Core -- 查询 关联数据加载 客户端与服务端运算 跟踪与不跟踪 复杂查询运算 原生 SQL 查询 全局查询筛选器 关联数据加载 学员和助教都在项目分组中,调整模型,删除 Ass ...

  7. Python-目录下相同格式的Excel文件合并

    最近在客户现场接到一个任务,需要将全国所有省份的数据进行合并.目录是分层级的,首先是省份目录.然后地级市目录.最里面是区县目录.需要将每个目录中的数据进行合并,然后添加4列数据,并将某一个列的数据进行 ...

  8. CF-926(已更新:B)

    CF-926 两点睡,七点起,阎王夸我好身体-- 主要这场实在是难绷,两个小时都在C题上吊死了,也不是没想过跳题,只是后面的题我更是一点思路都没有-^- "就喜欢这种被揭穿的感觉,爽!&qu ...

  9. NC20284 [SCOI2011]糖果

    题目链接 题目 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他 ...

  10. NC24263 USACO 2018 Feb G]Directory Traversal

    题目链接 题目 题目描述 奶牛Bessie令人惊讶地精通计算机.她在牛棚的电脑里用一组文件夹储存了她所有珍贵的文件,比如: bessie/ folder1/ file1 folder2/ file2 ...