一起创业网-为互联网创业者服务

怎么用python写串口程序

使用Python编写串口程序主要涉及以下步骤:

安装pySerial库

确保你的Python环境支持pySerial模块。可以通过命令行输入以下命令进行安装:

```bash

pip install pyserial

```

导入pySerial库

在Python代码中导入pySerial库,以便使用其提供的功能:

```python

import serial

from serial.tools import list_ports

```

列出可用的串口设备

使用`list_ports.comports()`函数获取所有连接的串口设备列表,并打印出每个设备的串口号和描述信息:

```python

ports_list = list(list_ports.comports())

if len(ports_list) == 0:

print("无串口设备。")

else:

print("可用的串口设备如下:")

for comport in ports_list:

print(f"{comport}, {comport}")

```

配置和打开串口

选择一个串口设备并配置其参数,如波特率、数据位、校验位、停止位和超时时间。然后使用`serial.Serial()`函数打开该串口:

```python

ser = serial.Serial(

port='COM3', 串口号,Windows上一般是COM几,Linux上是/dev/ttyUSB几

baudrate=9600, 波特率

bytesize=8, 数据位

parity='N', 校验位(N就是不校验)

stopbits=1, 停止位

timeout=1 超时时间,单位为秒

)

```

发送数据

使用`write()`方法向串口发送数据。注意,需要传入字节类型的数据:

```python

ser.write(b'Hello, Serial Port!')

print("数据已发送!")

```

读取数据

使用`read()`方法从串口读取数据。可以设置读取超时时间:

```python

data = ser.read(5) 读取5个字节

print(f"收到数据: {data.decode()}")

```

关闭串口

完成数据发送和接收后,使用`close()`方法关闭串口:

```python

ser.close()

```

```python

import serial

from serial.tools import list_ports

import time

列出所有可用的串口设备

ports_list = list(list_ports.comports())

if len(ports_list) == 0:

print("无串口设备。")

else:

print("可用的串口设备如下:")

for comport in ports_list:

print(f"{comport}, {comport}")

打开串口

ser = serial.Serial(

port='COM3', 串口号,Windows上一般是COM几,Linux上是/dev/ttyUSB几

baudrate=9600, 波特率

bytesize=8, 数据位

parity='N', 校验位(N就是不校验)

stopbits=1, 停止位

timeout=1 超时时间,单位为秒

)

检查串口是否打开成功

if ser.is_open:

print(f"串口 {ser.port} 已打开")

else:

print(f"无法打开串口 {ser.port}")

发送数据

try:

ser.write(b'Hello, Serial Port!')

print("数据已发送!")

time.sleep(1) 等待1秒,以便数据传输

读取数据

while True:

if ser.in_waiting: 检查是否有数据待读取

data = ser.readline()

print(f"收到数据: {data.decode().strip()}")

time.sleep(0.1) 每隔0.1秒读取一次数据

except KeyboardInterrupt:

if ser is not None:

ser.close()

print("串口已关闭。")

```

请根据你的实际需求和硬件设备调整串口号、波特