python提供了丰富的module 对串口的操作同样有对应的module:serial
环境:python3.5 蓝牙模块:HC-05 波特率38400
首先导入serial模块(通过pip install serial 安装)
获取串口ser 通过serial.Serial(地址,波特率,超时时间)
创建线程监听串口数据
使用 ser.in_waiting() 获知数据量 这个函数返回当前串口收到的数据长度
收取数据后进行详细操作
import serial
import GlobalVarible
import threading
import time
from ProcMsg import ProcMsg
ser = serial.Serial('com2', 38400, timeout=0.5)
index = 0
i = 0
def loop():
print("串口状态:" + str(ser.is_open))
while ser.isOpen():
if (ser.in_waiting > 0):
buffer = ser.read(ser.in_waiting)
i = len(buffer)
p = ProcMsg(buffer)
print(type(buffer))
p.proc()
elif (ser.in_waiting <= 0):
time.sleep(1)
t = threading.Thread(target=loop(), name="LoopThread")
t.start()
t.join()