import serial
import threading
class ComClass:
def __init__(self,port,baud):
self.port = port
self.baud = baud
self.comSerial = None
self.run = False
self.open()
if self.run:
self.thread1 = threading.Thread(target=self.receiveData)
self.thread2 = threading.Thread(target=self.sendData)
self.thread1.start()
self.thread2.start()
self.thread1.join()
self.thread2.join()
self.close()
def open(self):
try:
self.comSerial = serial.Serial(self.port,self.baud)
self.run = True
print("打开串口成功")
except:
print("打开串口失败")
self.close()
def close(self):
self.comSerial.close()
print("关闭串口")
def sendData(self):
print("sendData")
while self.run:
send_data = input()
if send_data:
self.comSerial.write(send_data.encode('UTF-8'))
print('发送数据:%s' % send_data)
if send_data == "break":
print("发送数据线程结束")
self.run = False
def receiveData(self):
print("receiveData")
while self.run:
receive_data = self.comSerial.read(self.comSerial.inWaiting()).decode("gbk")
if receive_data:
print('接收数据:%s' % receive_data)
if receive_data == "break":
print("接收数据线程结束")
self.run = False
a = ComClass('COM2',9600)
input("输入任意字符结束程序!")
python 串口通信多线程程序
于 2022-05-06 11:48:37 首次发布
本文介绍了如何使用Python的serial库进行串口通信,并运用threading模块创建两个线程分别负责数据发送和接收。实例展示了如何打开COM2端口,设置波特率,以及在用户输入中断时结束线程。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.9
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
998

被折叠的 条评论
为什么被折叠?



