← Back
zwj051029

zwj051029/jiangsu_robot_offroad_2026

2026江苏省大学生机器人大赛机器人越野项目嵌入式控制代码。

View on GitHub ↗
Stars
3
Forks
2
Watchers
3
Open issues
0
Contributors
3
Language
C
License
—
Default branch
main
Created Oct 1, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

jiangsu_robot_offroad_2026

用户已反馈 8-LP 灰度+OLED 测试检测无误,临时入口已撤下。 电机自动试车、串口调参及专用串口代码已移除,默认任务恢复比赛框架调度。 上电四轮禁能,不执行自动前进/后退;灰度、OLED 和超声波等待正式集成。 八组实测 PI 保存在 FrameComponets/Apps/Inc/MotorSpeedProfiles.hpp,使用方法见电机说明。 清理后的 V6 全量构建日志为 MDK-ARM/build-clean-v6.log。 四轮架空正反转 40/60 RPM 调参已完成,32 次重复验证均达标;参数及限制见 速度 PI 实测记录。

多人协作

电机、超声波和灰度传感器的分工、驱动接口、硬件资源及交付要求见 多人协作开发指南。开始模块开发前先阅读该指南。

根目录 .gitignore 已排除编译产物、测试输出和本机 IDE 配置; CubeMX/Keil 工程文件及编译所需的 CMSIS 库保留在版本管理中。

越野比赛框架

已按 STM32F103ZE 移植 V1_main 相关代码至 FrameComponets 的 Apps/Bsps/Mods/Sys/Algorithm 五层目录, 电机已适配本板 AT8236 和亚博 310 编码减速电机,包含双 PWM、RPM 反馈和速度 PID 接口。 四轮已绑定:M1 左前、M2 左后、M3 右前、M4 右后;用户已反馈正反转和停止现象正确。 速度 PI 已完成上述架空实测,尚待落地整车验证。临时 USART1 调参入口已删除。 详见 电机说明 与 框架说明。 超声波、灰度与 OLED 适配代码保留供正式集成,当前未启用其硬件入口。 电机和灰度测试配置均为 0,不应通过重新开启旧测试标志恢复临时入口。 电机测试及调参开关已移除,当前为框架自检等待和停车。

编译

使用 Keil µVision 打开 MDK-ARM/jiangsu_robot_offroad_2026.uvprojx, 选择 ARM Compiler V6,执行 Rebuild。

已使用本机 ARM Compiler V6.14.1 完整重编译验证:0 Error(s),0 Warning(s)。 清理版本详细日志:MDK-ARM/build-clean-v6.log。 生成文件:

  • MDK-ARM/jiangsu_robot_offroad_2026/jiangsu_robot_offroad_2026.axf
  • MDK-ARM/jiangsu_robot_offroad_2026/jiangsu_robot_offroad_2026.hex

电机驱动和上述架空 PI 已完成实测;清理后的新固件尚未烧录,比赛自动驾驶尚未实现。

V6 兼容性修复

原工程使用 FreeRTOS 的 portable/RVDS/ARM_CM3 移植层,包含 ARM Compiler V5 专用的 __forceinline、汇编块和内建函数,导致 V6 下大量重复报错。 现在工程的头文件搜索路径和 port.c 源文件路径均使用 portable/GCC/ARM_CM3。 该目录名称表示移植层采用 GNU 风格汇编;工程仍使用 ARM Compiler V6 编译。 两个新增文件来自 FreeRTOS 官方仓库,与现有内核版本 10.3.1 一致,保留原始许可:

  • port.c
  • portmacro.h

原来的 RVDS 文件保留,但未参与当前 V6 工程编译。

原 CubeMX 配置 ProjectManager.NoMain=true 使 main.c 缺少入口函数, 导致链接错误 Undefined symbol main。已设为 false,并补齐 main(): 初始化 HAL、系统时钟、GPIO、FreeRTOS 默认任务,再启动调度器。

CubeMX 重新生成工程

当前 CubeMX 导出目标为 MDK-ARM V5.32,重新生成可能恢复 RVDS 移植层路径 或覆盖 Keil 编译器设置。生成后检查:

  1. Keil 的 ARM Compiler 仍选择 V6。
  2. C/C++ 的 Include Paths 使用 ../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3。
  3. 工程中的唯一 port.c 来自上述 GCC 目录,不能同时编译 RVDS 的 port.c。
  4. 若新增的 GCC 目录被生成器删除,从上面的官方版本链接恢复两个文件。
  5. CubeMX 保持取消勾选“不生成 main”,并执行一次完整 Rebuild。