解决 Python pyserial 打开串口导致 STM32 复位的问题

用串口助手连接 STM32 时,数据接收正常。但用 Python 的 pyserial 库打开同一个串口时:

  1. STM32 自动重启

  2. 之前发送的数据全部丢失

根本原因:CH340 芯片的 DTR 信号连接到了 STM32 的复位引脚(NRST)。

Python 的 pyserial 库在打开串口时,默认会将 DTR 和 RTS 信号拉低

在打开串口后,立即将 DTR 和 RTS 设置为 False(高电平,不复位)。

import serial

ser = serial.Serial('COM4', 115200, timeout=1)
ser.dtr = False   # 关键!DTR = False 表示高电平
ser.rts = False   # 关键!RTS = False 表示高电平

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐