RM2025-Core 公共嵌入式库
嵌入式组长 · 核心维护者
在团队既有公共库上维护驱动与通信接口,负责协议兼容、电机驱动修复、代码审查和新人培训,支持 7 台机器人开发。
- 维护范围
- 驱动、通信与跨项目接口
- 使用范围
- 7 台机器人
- 团队职责
- 约 10 人团队 · PR 审查与培训

背景
不同机器人共用设备驱动、通信协议和控制工具。库中的基础模块来自多个赛季和多位成员,机器人任务则留在各自应用工程。
我承担公共库维护与组长职责,直接完成部分驱动和协议改造,并审查、整合队友的工作。
个人贡献
- 改造新旧图传模块的协议兼容,修正解码布局、缓冲尺寸及无效键鼠输入写入。
- 修复电机驱动中的反向输出和 CAN 通道初始化问题,整理电机接口与芯片配置。
- 更新 FreeRTOS、SystemView 等依赖及工程模板,拆分任务、审查 PR 并处理赛场问题。
- 设计并主讲约 10 节培训,帮助新人学习外设通信、电机控制与 FreeRTOS。
- 技术环境
- STM32 · FreeRTOS · FDCAN / UART / SPI · DMA Receive-to-Idle · PID / Filters · SystemView / Tracealyzer · Git Review
系统实现
Drivers
封装 GPIO、PWM、CAN、UART、SPI、定时器与 DMA,隔离具体板卡和 HAL 差异。
Communication
提供电机、裁判系统、VTM、视觉和板间协议的解析、校验、超时与状态接口。
Control & Math
复用 PID、滤波、斜坡、运动学和常用数学工具,减少机器人项目重复实现。
Application Boundary
公共库只提供经过审查的能力,具体任务状态机仍由各机器人项目维护。
新 / 旧 VTM 串口字节两套帧头与字段布局
DMA Receive-to-Idle按实际接收长度处理缓冲区
帧头 / CmdID / 长度CRC8 + CRC16
分协议解析位域与结构体对齐
分通道有效状态遥控 / 键鼠 / 图传分别超时;失联清除陈旧输入
技术决策
公共驱动与机器人任务分开
- 背景
- 同一套设备接口需要服务不同机器人。
- 选择
- 在公共库维护设备与通信接口,将具体任务状态机留在应用工程。
接口升级同时维护使用方
- 背景
- 电机接口、芯片配置和依赖升级会影响已有工程。
- 选择
- 同步修改配置范本、构建清单和相关驱动,结合 PR 审查整合成员修改。
问题与修复
新旧图传协议兼容与无效输入处理
新赛季图传模块改变了通信格式。我在既有驱动上进行兼容改造,并与队友一起修正接收与解析问题。
修复
- 我的修改涉及字段布局、接收缓冲尺寸、收发处理及无效键鼠输入的写入条件。
- 队友也参与接收逻辑修复,包括缓冲区清理时机;我负责审查和整合。
- 最终实现分别维护输入有效状态:超时清除输入,同时避免后续无效字段重新写入。
验证与现场记录
- 兼容驱动在开发联调中完成新旧模块通信;修复过程覆盖数据布局、接收处理与输入有效性。
- 公共库用于 2025 赛季全队机器人开发,具体机器人由各项目成员集成。