littlebot
Published on 2025-04-13 / 4 Visits
0

【源码】基于C语言的疯狂赛车硬件开发项目

项目简介

本项目聚焦于疯狂赛车相关硬件开发,具备完整的项目目录结构,包含文档、硬件和源代码等部分。借助ARM GCC工具链和makefiles进行编译,可开发适用于不同电路板(如hat和racer)的程序,还配备多个测试应用程序,用于调试和验证功能。

项目的主要特性和功能

  1. 支持SPI、I2C、USB等多样的硬件通信接口,可与ADC、IMU、RF模块等硬件模块通信。
  2. 能够灵活控制LED灯的闪烁和颜色。
  3. 可通过USB或UART便捷地进行数据的收发。
  4. 能将传感器数据转换为可读的字符串或十六进制表示。
  5. 全面初始化硬件接口、ADC、IMU、RF模块等设备。
  6. 提供多个测试程序,方便进行功能调试。
  7. 通过LED灯状态清晰指示设备的连接和电源状态。
  8. 完善处理硬件通信和数据读取等错误。

安装使用步骤

下载项目

  1. 小组负责人在https://eng-git.canterbury.ac.nz/wacky-racers/wacky-racers 上点击“Fork”按钮创建项目副本。
  2. 点击“Settings”菜单,展开“Sharing and permissions”,将“Project Visibility”改为“Private”。
  3. 点击“Members”菜单,添加小组成员为Developers。
  4. 使用bash终端(或其他shell),执行以下命令复制项目:
    • 若已设置SSH密钥:git clone git@eng-git.canterbury.ac.nz:your-userid/wacky-racers.git
    • 若未设置SSH密钥:git clone https://eng-git.canterbury.ac.nz/your-userid/wacky-racers.git
  5. 添加原始仓库为上游: cd wacky-racers git remote add upstream https://eng-git.canterbury.ac.nz/wacky-racers/wacky-racers.git
  6. 若原仓库有更新,可执行 git pull upstream master 拉取更新。

配置VS Code

  1. 打开VS Code,选择 File -> Open Folder 并指向 wacky-racers 仓库。
  2. 安装必要的VS Code扩展:C/C++ (Microsoft) 和Native Debug (Web Freak),VS Code会自动提示安装。
  3. 选择C++配置(窗口右下角),默认有 hatracer 选项。

配置文件

编辑 src/boards 目录下对应电路板的 target.h 文件。

安装编译工具

安装bare-metal ARM GCC工具链 arm-none-eabi,具体安装细节见 http://ecewiki.elec.canterbury.ac.nz/mediawiki/index.php/ARM_toolchain 。

编译运行

  1. 选择电路板,可通过以下两种方式设置 BOARD 环境变量:
    • 每个命令单独设置:BOARD=racer make program
    • 会话设置:export BOARD=racer; make program
  2. 首次使用需禁用MCU非易失性存储器的写保护位:make bootflash
  3. 常用makefile目标:
    • all:编译应用程序
    • program:编译并下载到MCU(需Openocd作为守护进程运行)
    • debug:启动调试器GDB(需Openocd作为守护进程运行)
    • reset:重置MCU(需Openocd作为守护进程运行)
    • clean:删除可执行文件和目标文件
    • bootflash:设置SAM4S的位,使其运行应用程序而非引导加载程序

测试应用程序

测试应用程序位于 test-apps 目录,使用时需设置 BOARD 环境变量,可尝试以下程序: - ledflash1:需在 boards/xxxx/target.h 中正确定义 LED1_PIO。 - pwm_test1:编辑 pwm_test1.c 并定义可用PWM引脚的 PWM1_PIO。 - usb_vbus_test1:检测USB VBUS信号。 - usbserial_hello1:通过USB CDC协议向计算机发送“Hello world”。 - adc_test1:读取AD5和AD6模拟输入并通过USB CDC协议打印值。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】