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

串口通信应用实例:使用serial.tools.list_ports.comports()函数获取串口列表

发布时间:2024-01-13 17:45:56

串口通信是一种常见的数据传输方式,常用于连接电脑与外部设备之间。在Python中,可以使用pyserian模块进行串口通信操作。pyserian模块中提供了serial.tools.list_ports.comports()函数,可以用来获取当前电脑上可用的串口列表。

下面是一段使用serial.tools.list_ports.comports()函数获取串口列表的示例代码:

import serial.tools.list_ports

# 获取串口列表
port_list = list(serial.tools.list_ports.comports())

# 打印串口列表
for port in port_list:
    print(port.device)

以上代码中,我们首先导入了serial.tools.list_ports模块,并调用comports()函数获取串口列表。函数返回一个包含所有可用串口的列表。我们将返回的串口列表转换为一个普通列表,并使用for循环遍历打印每个串口设备的名称。

使用serial.tools.list_ports.comports()函数获取串口列表是非常简单的,但在实际应用中,通常需要对获取到的串口进行筛选或其他操作。下面是一个实际应用示例,其中使用串口类进行串口通信:

import serial.tools.list_ports
import serial

# 获取串口列表
port_list = list(serial.tools.list_ports.comports())

if len(port_list) == 0:
    print('没有找到可用的串口!')
else:
    # 选择      个串口
    port = port_list[0].device
    print('使用串口:', port)

    # 连接串口
    ser = serial.Serial(port, baudrate=9600, timeout=0.5)

    # 发送数据
    ser.write(b'Hello, serial!')

    # 读取数据
    data = ser.read(10)
    print('收到数据:', data)

    # 关闭串口
    ser.close()

在以上示例代码中,我们首先获取串口列表,并判断是否存在可用串口。如果存在可用串口,则选择列表中的 个串口。然后,使用serial.Serial类连接串口,设置波特率为9600,并设置读取超时时间为0.5秒。

接着,我们通过ser.write()函数向串口发送数据,发送的数据是一个字节类型的字符串。然后,通过ser.read()函数从串口读取10个字节的数据,并打印收到的数据。

最后,使用ser.close()函数关闭串口连接。

这是一个简单的串口通信示例,你可以根据实际需求进行相应的修改和调整。请注意,实际应用中需要根据自己的设备和需求进行串口的设置和数据读写操作。