2024.08 — 2025.08团队公共嵌入式平台

RM2025-Core 公共嵌入式库

嵌入式组长 · 核心维护者

在团队既有公共库上维护驱动与通信接口,负责协议兼容、电机驱动修复、代码审查和新人培训,支持 7 台机器人开发。

维护范围
驱动、通信与跨项目接口
使用范围
7 台机器人
团队职责
约 10 人团队 · PR 审查与培训
HKUST ENTERPRIZE 嵌入式团队合照。
HKUST ENTERPRIZE 嵌入式团队合照。

背景

不同机器人共用设备驱动、通信协议和控制工具。库中的基础模块来自多个赛季和多位成员,机器人任务则留在各自应用工程。

我承担公共库维护与组长职责,直接完成部分驱动和协议改造,并审查、整合队友的工作。

个人贡献

  • 改造新旧图传模块的协议兼容,修正解码布局、缓冲尺寸及无效键鼠输入写入。
  • 修复电机驱动中的反向输出和 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 审查整合成员修改。

问题与修复

新旧图传协议兼容与无效输入处理

新赛季图传模块改变了通信格式。我在既有驱动上进行兼容改造,并与队友一起修正接收与解析问题。

修复

  • 我的修改涉及字段布局、接收缓冲尺寸、收发处理及无效键鼠输入的写入条件。
  • 队友也参与接收逻辑修复,包括缓冲区清理时机;我负责审查和整合。
  • 最终实现分别维护输入有效状态:超时清除输入,同时避免后续无效字段重新写入。

验证与现场记录

  1. 兼容驱动在开发联调中完成新旧模块通信;修复过程覆盖数据布局、接收处理与输入有效性。
  2. 公共库用于 2025 赛季全队机器人开发,具体机器人由各项目成员集成。

公开资料