python 使用线程接收串口数据,并同时可进行串口数据发送。

python 使用线程接收串口数据,并同时可进行串口数据发送。

问题:1、如何将发送与接收同时通过线程来完成操作。

            2、接收到的串口数据 打印数据显示为b‘XXX’格式,那么怎么转换呢?

由于从没系统看过python的基础语法,问题看似简单,却又不能很快的解决。

import serial
import time
import threading

class SerialPort:
	message='' 
	def __init__(self,port,buand):
		super(SerialPort, self).__init__()
		self.port=serial.Serial(port,buand)
		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 = input("请输入要发送的数据(非中文)并同时接收数据: ")
			n=self.port.write((data+'\n').encode())
			return n
	def read_data(self):
		while True:
			self.message=self.port.readline()
			print(self.message)

serialPort="COM7"   #串口
baudRate=9600       #波特率

if __name__=='__main__':
    
	mSerial=SerialPort(serialPort,baudRate)
	t1=threading.Thread(target=mSerial.read_data) 
 
	t1.start()
	while True:
         time.sleep(1)
         mSerial.send_data()  

猜你喜欢

转载自blog.csdn.net/xiaoeleis/article/details/81484872
今日推荐