无RTS/CTS引脚时,如何通过Telem端口连接Pixhawk与MissionPlanner?
解决无RTS/CTS引脚时Pixhawk Telem端口与MissionPlanner的连接问题
一、Pixhawk端Telem端口核心配置
- 先用Micro USB连接Pixhawk进入MissionPlanner,找到对应Telem口的串口设置:
- 将
SERIALx_PROTOCOL(x为Telem口对应的串口编号,比如Telem1对应SERIAL2)设为2(Mavlink 2协议) SERIALx_BAUD设为57600或115200(优先选57600,兼容性更强)- 必须把
SERIALx_RTSCTS设为0,关闭硬件流控——没有RTS/CTS引脚时,Pixhawk会因等待流控信号拒绝正常通信,这是最常见的问题点
- 将
二、接线与硬件检查
- 严格交叉接线:USB-TTL的RX ↔ Pixhawk Telem口的TX;USB-TTL的TX ↔ Pixhawk Telem口的RX;GND对GND,接反会导致无数据甚至损坏引脚
- 确认USB-TTL电平:Cube Black的Telem口是3.3V电平,禁用5V输出的USB-TTL,避免烧板
- 换USB端口或USB-TTL模块测试,排除硬件故障
三、Windows端COM口设置
- 打开设备管理器,找到USB-TTL对应的COM口,右键进入「端口设置」:
- 波特率与Pixhawk设置完全一致
- 数据位
8、停止位1、奇偶校验无 - 流控选项选「无」,彻底禁用所有流控机制
四、解决Python读取空字节的问题
- 使用
pyserial时必须匹配串口参数,示例代码:import serial # 替换COMx为你的实际端口号,波特率对应Pixhawk设置 ser = serial.Serial('COMx', 57600, timeout=1) while True: # 读取所有等待的数据,至少读1字节避免空等 data = ser.read(ser.in_waiting or 1) if data: print(data.hex()) # 打印十六进制,便于识别心跳包 - 若仍读空,先确认示波器监测的是Pixhawk的Telem TX引脚(而非USB-TTL的TX),排除接线错误
五、MissionPlanner连接操作
- 打开MissionPlanner,右上角选择对应COM口,波特率匹配设置
- 点击「连接」,若失败则重启MissionPlanner、重新插拔USB-TTL后重试
- 可再次进入「初始设置」→「可选硬件」→「串口」确认Telem口的流控已关闭
内容的提问来源于stack exchange,提问作者emogo
相关产品推荐
相关产品推荐

