这一步要完成什么
上一篇先分清了 Pixhawk 6C、PX4 和 QGroundControl 的关系。这一篇开始接触真实硬件,但目标仍然很克制:
只用 USB 连接飞控,确认 Windows 与 QGroundControl 能识别它,记录原始状态,不刷固件、不改参数,也不连接动力系统。
首次连接看起来只是“插一根线”,实际上已经贯通了下面这条链路:
Pixhawk 6C 硬件 |
实际使用的软件与连接结果
本次实际环境如下:
| 项目 | 实测结果 |
|---|---|
| 操作系统 | Windows x64 |
| QGroundControl | 5.0.8 |
| 连接方式 | USB 数据线,未接动力电池 |
| Windows 设备名称 | USB 串行设备(COM4) |
| USB 总线报告名称 | PX4 FMU v6C.x |
| USB 设备标识 | VID_3185&PID_0038 |
| 飞控固件 | PX4 Pro 1.16.0 |
| 系统 ID | 1 |
| 当前机架 | Generic Quadcopter X |
Windows 出现 COM4,说明 USB 数据线不仅能供电,也能够传输数据。QGroundControl 随后自动连接飞控并读取参数,因此暂时不需要在“通讯连接”中手动创建串口连接。
第一次启动时的“车辆信息”怎么选
QGroundControl 第一次启动会显示“车辆信息”窗口,让用户选择固件和飞机类型。我的实际界面如下:

当前学习路线准备使用 PX4,并最终搭建四旋翼,因此选择:
| 选项 | 本次选择 | 原因 |
|---|---|---|
| 固件 | PX4 Pro | 后续学习 PX4、Gazebo、ROS2 和 PX4 源码 |
| 飞机 | Multi-Rotor | 目标机型是四旋翼,属于多旋翼 |
选择后点击 OK 即可。
这里最重要的认识是:这个窗口用于指定未连接飞控时的离线任务规划默认值,并不是固件刷写窗口。 点击 OK 不会把 PX4 写入飞控,也不会修改飞控里的机架、传感器校准或控制参数。真正刷写固件需要主动进入“车辆配置 → 固件”,并完成另一套明确的刷写流程。
如果以后改学固定翼,或者把固件路线切换成 ArduPilot,可以再修改离线车辆信息;它不要求和当前每一块真实飞控永远保持一致。飞控已经连接时,QGroundControl 会从设备读取实际固件和机型信息。
从概况页读到了什么
弹窗背后的“概况”页已经证明 QGroundControl 成功读取了飞控:
- 飞控运行 PX4 Pro 1.16.0,系统 ID 为 1。
- 当前机架是 Generic Quadcopter X。
- 磁罗盘、陀螺仪和加速度计显示为就绪。
- 遥控器的横滚、俯仰、水平和油门仍显示“需要设置”。
- 飞行模式 1~6 尚未分配。
- 电池计数为 0,因为此时只进行了 USB 连接,没有接动力电池与电源模块。
- 执行器、电源和部分安全项尚未配置,概况页因此仍有红色项目。
这些红色提示在当前阶段是正常的,它们代表“整架飞机还不满足起飞条件”,不代表飞控已经损坏。缺少遥控器、接收机、电源模块、GPS、电调和电机时,不应该为了让界面变绿而关闭安全检查或随意填写参数。
为什么现在不刷固件
飞控已经能够正常启动并报告 PX4 1.16.0。这个阶段直接刷写固件会同时引入版本变化、参数变化和硬件识别三个变量,一旦出现问题,很难判断原因。
更稳妥的顺序是:
- 记录当前固件、机架与告警状态。
- 导出一份完整参数作为原始备份。
- 验证姿态显示能随飞控倾斜而变化。
- 确认板卡型号和 microSD 状态。
- 再决定是否确有必要刷写 PX4 Stable。
即使以后需要刷写,也应使用 QGroundControl 官方稳定版固件,并确保飞控不接动力电池、不接螺旋桨。
本次操作步骤
- 先启动 QGroundControl 5.0.8。
- 使用确认支持数据传输的 USB 线连接 Pixhawk 6C。
- 不连接动力电池、电机和螺旋桨。
- 等待 Windows 出现“USB 串行设备(COM4)”。
- 等待 QGroundControl 自动下载参数并进入车辆配置页面。
- 在首次车辆信息窗口选择
PX4 Pro和Multi-Rotor,点击 OK。 - 记录概况页,不修改红色项目,不进入固件刷写流程。
原始参数备份结果
在修改任何设置之前,先从“参数 → 工具 → 保存到文件”导出了原始参数:
pixhawk6c_px4_1.16.0_original_2026-08-09.params |
验证结果如下:
| 检查项 | 结果 |
|---|---|
| 文件大小 | 37,261 字节 |
| 参数记录数 | 1,100 |
| 唯一参数名 | 1,100 |
| 载具 ID / 组件 ID | 1 / 1 |
MAV_SYS_ID |
1 |
SYS_AUTOSTART |
4001 |
SYS_AUTOCONFIG |
0 |
| SHA-256 | FE087AA9EAB65D3EC5415028AFC451D854B7B02EC123EEE7342D1637817456D1 |
文件中还能读到加速度计、陀螺仪和磁力计的有效设备 ID,说明这不是空文件或只包含少量差异参数的文件。原文件与第二份离线副本的 SHA-256 相同,复制过程中没有发生内容变化。
完整参数文件可能包含具体传感器校准量和硬件配置,因此只保存在本地资料目录,不作为博客附件公开。博客记录文件名、参数数量和哈希值,既能证明备份状态,也可以在以后恢复前核对文件是否被改动。
一次实际的 Comms Lost 与恢复
第二天继续实验时,Pixhawk 已经重新插入电脑,Windows 也仍然显示 COM4,但 Fly 页面顶部出现了红色的 Comms Lost:

这里需要区分三种状态:
| 状态 | 含义 |
|---|---|
| Windows 存在 COM4 | 操作系统能够识别 USB 串口设备 |
QGC 不再显示 Comms Lost |
QGC 正在持续收到飞控的 MAVLink 心跳 |
QGC 显示 Not Ready |
通信正常,但整机预检条件尚未全部满足 |
这次 QGroundControl 进程从前一天开始一直没有退出,而飞控中途被拔下并在第二天重新接入,旧通信会话没有正常恢复。排查时确认 COM4 状态正常,并从 USB 总线报告中读到了更明确的设备名称 PX4 FMU v6C.x,因此问题不在 USB 驱动或板卡识别。
安全恢复步骤是:
- 点击顶部的 Disconnect。
- 完全退出 QGroundControl。
- 拔下 Pixhawk USB,等待约 5 秒。
- 先启动 QGroundControl,再重新插入 Pixhawk。
- 等待飞控自动连接和参数加载完成。
恢复连接后,QGC 自动进入车辆配置概况页:

这是正常行为。由于遥控器、飞行模式、电源和执行器还没有配置,QGC 会优先显示带有红色待办项的概况页。红色项目说明当前不具备起飞条件,并不表示通信再次中断。
姿态仪验证
退出车辆配置并返回 Fly 页面后,顶部状态显示为 Not Ready,没有再次出现 Comms Lost:

保持飞控只连接 USB,依次缓慢进行左右横滚、前后俯仰,以及水平状态下的左右转动。实际观察结果是:
- 姿态仪会连续跟随横滚和俯仰动作变化。
- 航向显示会随水平转动发生变化。
- 动作响应连续,没有卡死或突然丢失通信。
- 飞控重新水平放置后,姿态显示能够稳定下来。
静态截图只能记录当时的连接页面,不能独立证明动态过程,因此这里同时保留实际操作观察结论。这次测试没有执行传感器校准,也没有修改任何飞控参数。
姿态仪能正确响应,说明下面的最小观测链路已经跑通:
IMU 采样 |
用 MAVLink Console 只读确认系统信息
为了进一步确认板卡、固件构建和 microSD 状态,点击 QGroundControl 左上角 Q 图标,进入“分析工具 → MAVLink 控制台”。这个控制台连接的是 PX4 的 NuttShell,可以直接读取飞控系统状态,因此只执行事先确认过的只读命令:
ver all |
实际输出如下:

板卡、固件与操作系统
ver all 给出了比 Windows 设备管理器更详细的信息:
| 项目 | 实测结果 |
|---|---|
| NuttShell | NuttX-11.0.0 |
| 硬件架构 | PX4_FMU_V6C |
| 硬件类型 | V6C000002 |
| 硬件版本 / 修订 | 0x000 / 0x002 |
| PX4 版本 | Release 1.16.0(17826047) |
| PX4 Git 提交 | 6ea3539157ca358c70a515878b77077af7d4611d |
| 操作系统 | NuttX Release 11.0.0(184549631) |
| OS Git 提交 | 886acbdb4f061e5c0ce1a76afbcfa7cb7df9849 |
| 固件构建时间 | 2025-08-06 15:07:26 |
| 构建变体 | default |
| 工具链 | GNU GCC 9.3.1 20200408(release) |
| MCU | STM32H7[4|5]xxx,revision V |
输出中还包含 PX4GUID。它是设备的唯一标识,没有必要出现在公开文章中,因此只保留在原始截图里,不再转写为正文。
microSD 与日志状态
df 显示 /fs/microsd 已经成功挂载:
| 项目 | 实测结果 |
|---|---|
| 块大小 | 32,768 字节 |
| 总块数 | 120,752 |
| 已用块数 | 14 |
| 可用块数 | 120,738 |
| 计算容量 | 3,956,801,536 字节,约 3.69 GiB |
| 挂载点 | /fs/microsd |
这对应一张标称容量约 4 GB 的 microSD。ls /fs/microsd 能够正常列出 dataman、log/、parameters_backup.bson 和 uavcan.db/ 等内容,进一步证明存储卡不仅存在,而且可以被 PX4 的文件系统访问。
目录中还存在 param_import_fail.bson 和 param_import_fail.txt。它们表明过去某次启动或参数导入曾留下失败记录,但仅凭文件名不能判断具体原因;当前 PX4 已正常启动并导出了完整参数,因此先保留原文件,后续只读查看文本内容,不直接删除。
logger status 的结果是:
Running in mode: all |
这表示日志模块正在运行并已经订阅数据,但当前没有开始写飞行日志。飞控尚未解锁、也没有开始飞行时出现 Not logging 是正常状态。
MAVLink Console 权限很高。当前阶段不执行 param set、commander arm、reboot 或会写入存储卡的压力测试命令,只把它用作只读观察窗口。
本阶段检查清单
- [x] 安装并正常启动 QGroundControl 5.0.8。
- [x] Windows 通过 USB 识别 Pixhawk 6C,并分配 COM4。
- [x] QGroundControl 自动连接并成功读取参数。
- [x] 记录 PX4 Pro 1.16.0、系统 ID 1 和 Generic Quadcopter X。
- [x] 明确首次“车辆信息”弹窗不会刷写固件。
- [x] 导出并保存飞控的 1,100 项原始参数,并建立第二份校验一致的副本。
- [x] Windows USB 总线将板卡识别为 PX4 FMU v6C.x。
- [x] 通过 MAVLink Console 确认硬件架构为 PX4_FMU_V6C、MCU 为 STM32H7。
- [x] 确认约 4 GB microSD 已挂载到
/fs/microsd,日志模块正常运行。 - [x] 缓慢倾斜和转动飞控,姿态仪与航向显示连续响应。
- [ ] 逐项解释当前预检告警,不通过关闭安全检查来消除告警。
下一步
下一步先只读查看 param_import_fail.txt 的历史记录,不对存储卡做清理。确认没有当前故障后,再进入传感器与坐标系笔记,理解陀螺仪、加速度计、磁力计分别测量什么,为什么校准时要按指定方向翻转机体。
参考资料:
- QGroundControl 5.0 快速开始:https://docs.qgroundcontrol.com/Stable_V5.0/en/qgc-user-guide/getting_started/quick_start.html
- QGroundControl 车辆配置说明:https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/setup_view.html
- QGroundControl 首次启动提示说明:https://docs.qgroundcontrol.com/Stable_V5.0/en/qgc-dev-guide/custom_build/first_run_prompts.html