欢迎访问宙启技术站
智能推送

Python代码示例:自动识别并连接USB串口设备

发布时间:2023-12-16 03:18:35

以下是一个Python代码示例,用于自动识别和连接USB串口设备,并附带一个使用例子。代码使用了pyserial库来实现串口通信。

import serial.tools.list_ports
import time

# 自动识别并连接USB串口设备
def connect_usb_serial():
    # 获取所有可用的串口设备
    ports = list(serial.tools.list_ports.comports())
    
    if len(ports) == 0:
        print("没有找到可用的串口设备!")
        return None
    
    # 遍历所有串口设备,查找USB串口设备
    for port in ports:
        if "USB" in port.description.upper():
            try:
                # 打开串口设备
                serial_device = serial.Serial(port.device)
                print("成功连接到USB串口设备:" + port.device)
                return serial_device
            except:
                print("无法连接到串口设备:" + port.device)
    
    print("没有找到USB串口设备!")
    return None

# 使用例子,从USB串口设备读取数据并输出
def example_usage():
    serial_device = connect_usb_serial()
    if serial_device is None:
        return
    
    try:
        # 设置串口参数
        serial_device.baudrate = 9600
        serial_device.bytesize = serial.EIGHTBITS
        serial_device.parity = serial.PARITY_NONE
        serial_device.stopbits = serial.STOPBITS_ONE
        
        while True:
            if serial_device.in_waiting > 0:
                # 从串口读取数据
                data = serial_device.readline().decode().strip()
                print("收到数据:" + data)
                
    except KeyboardInterrupt:
        # 用户按下Ctrl+C时停止程序运行
        print("程序已停止")
    
    finally:
        # 关闭串口设备
        serial_device.close()
        print("已关闭串口设备")

# 运行使用例子
example_usage()

运行该代码,它将自动识别并连接USB串口设备,然后从串口设备读取数据并输出。你可以根据实际需求修改串口参数以及处理数据的逻辑。

注意:在运行代码之前,确保已安装pyserial库。可以使用以下命令安装pyserial库:

pip install pyserial

希望以上示例对你有所帮助!