Python串口通信-[基本语法]-[获取GPS定位器的串口名称]:Python 中进行串口通信,可以使用 pyserial 库

1、安装依赖库

pip install pyserial

2、写一个基本的通信方法

import serial

def send_to_ser(name,baud):
    #name = 'COM1' 串口名称
    #baud = 9600  波特率
    ser = serial.Serial(name, baud)
    ser.write(b'start') #给串口写入数据,bytes类型
    recv = ser.read(10) #从串口读取10个字节数据 
    print(recv)


if __name__ == '__main__':
    send_to_ser('COM1',9600)

3、获取usb定位在电脑的端口

import serial.tools.list_ports

def get_ser_port_name(chip_name = 'CH340'):
    '''
    chip_name: gps定位使用的芯片名,不同型号的gps的芯片是不一样的。
    return: name=COM6  等串口名字
    '''
    # 获取可用串口列表
    ports = serial.tools.list_ports.comports()
    # 遍历并打印可用串口信息
    for port in ports:
        try:
            ser = serial.Serial(port.device)
            ser.close()
            is_connected = True
        except serial.SerialException:
            is_connected = False

        desc = port.description
        name = port.name
        if (chip_name in desc) and is_connected and name!='COM1':
            # print(name)
            return name
        # print(f"串口名称: {port.name}")
        # print(f"描述: {port.description}")
        # print(f"设备: {port.device}")
        # print(f"厂商: {port.manufacturer}")
        # print(f"产品: {port.product}")
        # print(f"序列号: {port.serial_number}")
        # print(f"是否已连接: {is_connected}")
        # print("--------------------------")
    else:
        #代表搜索不到了
        return None

注意:

1、CH340 芯片,不止应用在GPS定位器上,还可能有其他usb设备也会使用,如果电脑上插入的usb设备中,有多个使用了CH340芯片时,就无法区分开来。

2、可以通过更多的信息来区别:制造商id=port.pid,供应商id=port.vid 

3、在调试的时候,可以一个一个设备进行信息获取,获取到对应usb设备对应的 port.description,port.pid和port.vid 。 为后续脚本的运行设置好对应usb设备的信息。

4、具体操作还是要根据具体业务来操作,不能拿来即用

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