Commit Graph
4 Commits
Author SHA1 Message Date
LSMushui 3c95bb0887 feat(debug): USB CDC 输出改为 QuaternionEKF 欧拉角
原 debug_task 每 500ms 经 CDC 打印一行混装诊断信息(芯片 ID/帧计数/空闲中断
计数/链路状态/电机掉线/跟随误差等 18 个字段),稳定后已无持续观察价值。
现改为直接输出姿态解算结果,便于上位机/串口助手直接看欧拉角与验证 EKF 收敛。

输出格式(单位: 度): yaw=<...> pitch=<...> roll=<...> cvg=<0|1>
  yaw   = att_deg_yaw   (多圈连续偏航角,= INS.YawTotalAngle,云台 Yaw 环反馈)
  pitch = att_deg_pitch  (= QEKF_INS.Roll, 绕 y 轴角)
  roll  = att_deg_roll   (= QEKF_INS.Pitch,绕 x 轴角,云台 Pitch 环反馈)
  cvg   = att_ready      (0 表示 EKF 未收敛,此时角度不可信)
字段命名沿用工程侧语义,QEKF 内部 Pitch/Roll 与航空惯例互换的映射见
modules/attitude/attitude.c 文件头。

其他调整:
- 云台/底盘共用本文件,因两板 IMU_Task 都跑 attitude_update(),att_deg_*
  均有效,故移除原 ROBOT_TYPE_GIMBAL / ROBOT_TYPE_CHASSIS 分支;
- 输出周期 500ms -> 100ms(10Hz,宏 DEBUG_OUT_PERIOD_MS 可调),2Hz 下无法
  观察姿态动态响应;
- 清理因此不再需要的 include 与 dbg_* 外部声明(bmi088/ist8310/dr16/referee/
  c_comm/bsp_can/bsp_usart/usart.h/dbg_imu_loop/dbg_can_loop);
- 同步更新两份 debug_task.h 的注释说明。
2026-09-12 10:33:29 +08:00
LSMushui a9d3d97ed8 refactor(bsp): 删除无实际作用的 bsp_uart 模块
分析结论: Bsp 层并存 bsp_uart.{c,h} 与 bsp_usart.{c,h} 两套串口支持包,
其中 bsp_uart 是死代码,证据:

1. bsp_uart 只导出一个函数 UartSendTxMessage()(HAL_UART_Transmit 阻塞
   发送 + 最多 5 次重发),全工程检索无任何调用方;
2. #include "bsp_uart.h" 只出现在 bsp_uart.c 自身,Application/Core 层
   一律包含 bsp_usart.h;
3. bsp_uart.h 里的 UART1/UART2 宏也无人使用,仅被 bsp_usart.c 的注释提及;
4. 真正在用的是 bsp_usart.{c,h}(USART1/3/6 的 DMA 循环接收 + 空闲中断整帧
   回调 + TX DMA),main.c/stm32f4xx_it.c/referee_task/can_task 均依赖它。

变更:
- 删除 云台/底盘 各自的 Bsp/Src/bsp_uart.c 与 Bsp/Inc/bsp_uart.h;
- 从两个 Keil 工程的 .uvprojx(编译文件列表)与 .uvoptx(文件选项)中摘除
  对应条目,工程文件良构性已校验通过。

注: bsp_usart.c 中 usart1_tx_dma_enable()/usart6_tx_dma_enable() 目前也
无调用方(仅 usart1_tx_dma_init() 被 can_task 调用,为视觉自瞄预留),属接口
预留而非死模块,本次保留。
2026-09-12 10:33:20 +08:00
LSMushui 58aff16be1 build(gitignore): 保留 CMSIS-DSP 预编译库,不再被 *.lib 忽略
两个子工程的 .gitignore 来自通用 C 模板,其中的 *.lib 规则会把
Middlewares/ST/ARM/DSP/Lib 下的 arm_cortexM4lf_math.lib(CMSIS-DSP 预编译
库)一并排除。该文件是源码依赖而非构建产物,是工程链接 DSP 依赖时必须
的输入,一旦不入库,新克隆的仓库无法构建。故移除 *.lib 忽略规则。
2026-09-12 10:33:12 +08:00
LSMushui a4da5ad17c chore: 导入 Simba-OmniInfantry 基线(云台/底盘双工程)
- 云台(ROBOT_TYPE_GIMBAL)与底盘(ROBOT_TYPE_CHASSIS)完整固件源码
- 新增根级 .gitignore,排除 Keil MDK-ARM 构建产物(.o/.d/.crf/.axf/.lnp/.map/.htm/.sct/.dep/.iex/.lst 等)
  与 *.uvguix.* / DebugConfig/(与机器绑定的 UI 布局)
- core.autocrlf=false,避免固件源码在检出时被改动换行符
2026-09-12 10:28:21 +08:00