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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值