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、具体操作还是要根据具体业务来操作,不能拿来即用