基于python的多线程串口处理实例源码解析
- 使用了线程
- 使用了serial
- 使用了class
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()
基于python的多线程串口处理实例源码解析的更多相关文章
- [Java多线程]-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- Java并发包源码学习系列:基于CAS非阻塞并发队列ConcurrentLinkedQueue源码解析
目录 非阻塞并发队列ConcurrentLinkedQueue概述 结构组成 基本不变式 head的不变式与可变式 tail的不变式与可变式 offer操作 源码解析 图解offer操作 JDK1.6 ...
- .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析
介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...
- [Java多线程]-Thread和Runable源码解析
多线程:(百度百科借一波定义) 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提 ...
- Java并发包源码学习系列:线程池ThreadPoolExecutor源码解析
目录 ThreadPoolExecutor概述 线程池解决的优点 线程池处理流程 创建线程池 重要常量及字段 线程池的五种状态及转换 ThreadPoolExecutor构造参数及参数意义 Work类 ...
- 基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- JAVA上百实例源码网站
JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...
- 45个android实例源码
分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.html andriod闹钟源代码http://www.apkbus.com ...
随机推荐
- P2216 [HAOI2007] 理想的正方形 题解
题目链接:理想的正方形 比较明显的,我们可以用二维 ST 表解决,具体的二维 ST 表的实现,只需要知道一点: 对于 \(st[i][j][t]=max(i \sim i+2^t,j \sim j+2 ...
- delphi调试 字符串 栈的地址,和栈中存的值
- Windows-Xshell对多个终端同时执行命令(发送命令到多个会话)
方法1:使用查看中的撰(zhuàn)写栏 (1).查看→撰写→撰写栏. (2).底部可以看到"撰写栏",选择全部会话. (3).在撰写栏输入命令,回车后就会发送到所有会话窗口. 方 ...
- NC50940 Running Median
题目链接 题目 题目描述 For this problem, you will write a program that reads in a sequence of 32-bit signed in ...
- NC51032 八数码
题目链接 题目 题目描述 The 15-puzzle has been around for over 100 years; even if you don't know it by that nam ...
- 普冉PY32系列(十一) 基于PY32F002A的6+1通道遥控小车II - 控制篇
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...
- 使用TensorFlow实现MNIST数据集分类
1 MNIST数据集 MNIST数据集由70000张28x28像素的黑白图片组成,每一张图片都写有0~9中的一个数字,每个像素点的灰度值在0 ~ 255(0是黑色,255是白色)之间. MINST数据 ...
- SpringCloud Alibaba Sentinel实现熔断与限流<2020-9>
SpringCloud Alibaba Sentinel 1.Sentinel是什么? 1.1.前言说明: 作用:实现熔断与限流 (Hystrix断路器 升级版) 文档直达: 官网中文文档 1.2.S ...
- 问题处理:java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
问题说明 今天跑spring boot项目,在查看列表数据时后台抛异常了,一看是这玩意: 问题原因 "0000-00-00 00:00:00"在mysql中是作为一个特殊值存在的但 ...
- acm交互题
1.Dragon Balls 根据勾股定理把所有整数点都给求解出来,然后依次询问,注意数据范围 暴力求解,把每次可能的值都求出来,然后逐个比较. #include<bits/stdc++.h&g ...