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

如何通过Python正确实现与FTDI FT232RL模块的串口通信?

你的问题核心是串口参数配置和指令格式与下位机要求不匹配,可按以下顺序排查修复:

  • 修正串口校验位配置:PuTTY默认串口通信使用无校验位,你当前代码配置了serial.PARITY_ODD奇校验,下位机接收到数据后会因校验不匹配直接丢弃指令,将校验位改为serial.PARITY_NONE即可。
  • 补充指令结束符:绝大多数串口控制设备需要收到回车(\r)、换行(\n)或二者组合的行结束符才会判定指令输入完成并执行,你在PuTTY中输入指令后按的回车就是发送这个结束符,代码中发送指令时需要补充对应后缀。
  • 增加必要的等待和缓冲区刷新操作:
    1. 串口刚打开时部分下位机会有短暂的初始化过程,立刻发送指令会被忽略,建议打开端口后等待100~200ms
    2. 指令发送后不要立刻关闭端口,否则输出缓冲区中未发送完成的数据会被直接丢弃,可调用ser.flush()等待所有数据发送完成后再关闭端口

修正后的参考代码

import serial
import time

ser = serial.Serial(
  port='COM3',
  baudrate=115200,
  parity=serial.PARITY_NONE,  # 修正为无校验
  stopbits=serial.STOPBITS_ONE,
  bytesize=serial.EIGHTBITS,
  timeout=1
)
# 打开端口后等待下位机就绪
time.sleep(0.2)
# 发送指令补充结束符,根据你的设备实际要求选\r、\n或者\r\n,大部分设备用\r\n即可
ser.write(b'*rst\r\n')
# 等待所有数据发送完成
ser.flush()
# 可选:读取下位机返回的响应,方便排查问题
# response = ser.readline()
# print(response.decode())
ser.close()

如果按以上修改后还是无法正常控制,可以先将代码的波特率、校验位、停止位参数和PuTTY的串口配置逐项对比,确保完全一致即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:03