Python串口通信方法

环境

安装pip install pyserial

如果报错

控制面板路径,cd到C:\Users\"username"\AppData\Local\Programs\Python\Python310\Scripts

再执行pip install pyserial

注意事项:
不要将文件命名为serial,这和导入包名称相同!

接口函数

获取串口列表

import serial.tools.list_ports

port_list = list(serial.tools.list_ports.comports())

获取可用串口列表:

import serial #导入模块
import serial.tools.list_ports

port_list = list(serial.tools.list_ports.comports())
print(port_list)
if len(port_list) == 0:
   print('无可用串口')
else:
    for i in range(0,len(port_list)):
        print(port_list[i])

运行结果

 

打开端口

com = serial.Serial('COM120',115200,timeout=0.2)
print(com)

写数据

result = com.write("audio_chime -g 24 /mnt/etc/yesterday.wav\n".encode("ascii"))
print("写总字节数:",result)

发送特殊字符

发送CTRL+C

com.write(chr(0x03).encode())

读数据

print(com.read().hex())

TODO:这个只能读一个字符,如果想连续读,需要在while中执行,最好使用线程完成读取任务

关闭串口

com.close()

使用线程接收方法

import threading

#读数代码本体实现
def ReadData(com):
    global BOOL
    # 循环接收数据,此为死循环,可用线程实现
    while BOOL:
        if com.in_waiting:
            STRGLO = com.read(com.in_waiting).decode("ascii")
            #end用于阻断换行
            print(STRGLO, end='')


def DReceiveThread(com):
    threading.Thread(target=ReadData, args=(com,)).start()

你可能感兴趣的:(python,python,开发语言)