API 串口函数详解
串口通信
串口通信(Serial Communication)是计算机与其他设备间通过串行接口传输数据的方式,常用于工业控制、物联网设备等场景,API 串口函数提供标准化接口,用于实现串口的打开、配置、读写和关闭操作。

常用串口 API 函数
| 函数分类 | 函数名称 | 功能描述 |
|---|---|---|
| 打开串口 | open_serial() | 初始化并打开指定串口 |
| 配置串口 | configure_serial() | 设置波特率、校验位等参数 |
| 读取数据 | read_serial() | 从串口接收数据 |
| 写入数据 | write_serial() | 向串口发送数据 |
| 关闭串口 | close_serial() | 释放串口资源 |
函数参数与返回值说明
open_serial()
| 参数类型 | 参数名称 | 说明 | 示例值 |
|---|---|---|---|
| 字符串 | port | 串口名称(如 COM3、/dev/ttyUSB0) | "COM3" |
| 整数 | baudrate | 波特率(如 9600、115200) | 9600 |
| 布尔 | blocking | 是否阻塞模式 | True |
返回值:
| 返回值类型 | 说明 |
|————|——|
| 成功时返回串口对象 | 可用于后续读写操作 |
| 失败时返回错误码 | 如 -1 表示端口被占用 |
configure_serial()
| 参数名称 | 类型 | 可选值 | 说明 |
|---|---|---|---|
| 波特率 | 整数 | 1200~115200 | 通信速率 |
| 数据位 | 整数 | 5~8 | 数据长度(默认 8) |
| 停止位 | 字符串 | 1/5/2 | 默认 1 |
| 校验位 | 字符串 | None/Even/Odd/Mark/Space | 默认 None(无校验) |
read_serial()
| 参数名称 | 类型 | 说明 |
|---|---|---|
size | 整数 | 读取的字节数(如 100) |
timeout | 浮点数 | 超时时间(秒,如 0) |
返回值:
| 返回值类型 | 说明 |
|————|——|
| 字节数组 | 成功读取的数据 |
| None | 超时或无数据 |
| 错误码 | 如 -1 表示读取失败 |

错误处理与调试
| 错误场景 | 解决方法 |
|---|---|
| 串口被其他程序占用 | 检查端口号或关闭冲突程序 |
| 参数配置错误(如非法波特率) | 核对参数是否符合规范 |
| 数据粘包(分割错误) | 添加数据头或固定帧格式 |
示例代码(Python pySerial 库)
import serial
# 打开串口
ser = serial.Serial(port="COM3", baudrate=9600, bytesize=8, parity='N', stopbits=1)
# 配置串口(可选,pySerial 自动应用参数)
ser.timeout = 1 # 设置超时时间
# 写入数据
ser.write(b"Hello Serial")
# 读取数据
data = ser.read(100) # 最多读取 100 字节
print("Received:", data.decode())
# 关闭串口
ser.close() 相关问题与解答
问题 1:如何选择正确的波特率?
解答:
- 根据设备手册选择标准波特率(如 9600、115200)。
- 确保通信双方波特率一致,否则会导致乱码。
- 高波特率速度快但抗干扰能力弱,低波特率反之。
问题 2:如何判断串口是否成功打开?
解答:

- 检查返回值是否为有效的串口对象(非
None或错误码)。 - 尝试写入数据并读取回显,验证通信是否正常。
- 在 Linux 系统中,可通过
ls /dev/tty*查看
小伙伴们,上文介绍了“api 串口函数”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复