|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import sys
import serial
import threading
from time import sleep
class Uart(object):
def __init__(self, port, baud):
self.err = 0
# open serial
try:
self.serial = serial.Serial(port, baud)
print("open serial success.")
except:
print("open serial error!")
self.err = -1
def uart_recv_thread(self):
print("start uart_recv_thread.")
while(True):
sleep(0.02)
try:
recv_len = self.serial.inWaiting()
if recv_len > 0:
recv_data_raw = self.serial.read(self.serial.inWaiting())
if (recv_data_raw != None):
data = "DEVICE---->PC: " + recv_data_raw.decode()
print(data)
except:
print("recv data error!")
break
def start_recv_thread(self):
thread = threading.Thread(target=self.uart_recv_thread, daemon=True)
thread.start()
def send_uart_data(self, data):
self.serial.write(data.encode())
def uart_close(self):
self.serial.close()
if __name__ == "__main__":
myuart = Uart("COM1", 9600)
if (0 == myuart.err):
print("Init Uart Success.")
# 如果打开串口成功,启动接收线程,准备实时的接收数据
myuart.start_recv_thread()
while(True):
input_data = input("Please input data...")
if (input_data == "quit"):
# 退出
myuart.uart_close()
break
else:
#发送数据给设备
myuart.send_uart_data(input_data)
sleep(0.01)
print("exit!")
键盘向串口发送数据之后,标橙色的位置接受到的数据一直是0
|
|