You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Python Pyserial向COM5写入的数据 及STM32 CubeIDE接收相关问题

COM5端口占用无法查看Pyserial发送数据的解决方案

端口占用报错的核心原因是串口为独占资源,同一时间仅允许一个进程对其进行读写操作,你的Python脚本已经占用了COM5,Putty自然无法再次访问该端口,可根据你的需求选择对应解决方法:

方案1:直接在Python脚本中打印输出(操作最简)

无需额外工具,直接在调用serial.write()的位置前后,打印待发送的数据即可:

import serial
import time

ser = serial.Serial('COM5', 115200, timeout=1)
# 构造待发送数据
send_data = b'Test data to STM32\r\n'
# 分别打印二进制原始数据和解码后的字符串
print(f"原始发送二进制:{send_data}")
print(f"解码后内容:{send_data.decode('utf-8', errors='ignore')}")
ser.write(send_data)

方案2:关闭Python进程后用Putty抓包(适配单次验证场景)

如果只需要临时验证Pyserial串口发送功能正常:

  • 先彻底关闭正在运行的Python脚本,释放COM5端口
  • 打开Putty并配置好COM5的波特率、校验位等参数后启动连接
  • 3秒内运行Python发送脚本,即可在Putty窗口看到接收的内容
    如果担心端口抢不过,可以在Python串口初始化代码前加3秒延迟:time.sleep(3)

方案3:用虚拟串口转发(适配需要同时给CubeIDE接收的场景)

如果需要让Pyserial发送的数据同时被多个工具接收,可通过虚拟串口对实现转发:

  • 安装虚拟串口工具VSPD,创建一对互通的虚拟串口,例如COM2<->COM3
  • 修改Python代码中的发送端口为COM2
  • Putty/STM32 CubeIDE连接COM3,即可实时接收所有Python发送的数据,不会出现端口占用冲突

方案4:用串口监听工具直接抓包(适配不需要修改现有代码的场景)

如果不想调整现有Python代码和硬件连接,直接安装串口监听软件(如Serial Monitor、PortMon),这类工具不需要占用串口资源,可直接挂载到COM5上,实时抓取所有出入该端口的数据包,包含Python发送的所有内容。

注意:不要尝试让Python和Putty/STM32 CubeIDE同时直连同一个物理串口,一定会触发端口占用报错。

内容的提问来源于stack exchange,提问作者fluffykitten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:36:00