![](https://csdnimg.cn/release/download_crawler_static/12606582/bg1.jpg)
RoboMaster 开发板 C 型嵌入式软件
教程文档
v1.0 2020.01
![](https://csdnimg.cn/release/download_crawler_static/12606582/bg2.jpg)
前置参考阅读
1. 《RoboMaster 开发板 C 型用户手册》
2. C 语言相关书籍
3. 《ARM Cortex-M3 与 Cortex-M4 权威指南》
4. STM32F407IG 相关数据手册
5. freeRTOS 官网相关文档
建议用户首先阅读《RoboMaster 开发板 C 型用户手册》,了解 RoboMaster 开发板 C 型(以下简称开发
板 C 型)相关功能以及使用方法,正确使用开发板 C 型的相关接口,避免错误的使用方法造成开发板 C
型的损坏;开发板 C 型的例程所使用的编程语言为 C 语言,建议用户学习 C 语言的基本语法,本文档没
有针对 C 语言进行系统的讲解;《ARM Cortex-M3 与 Cortex-M4 权威指南》、STM32F407IG 相关数据
手册和 freeRTOS 官网相关文档作为参考资料,在必要时候可以进行查阅。
修改日志
日期
版本
修改记录
2020.01.09
V1.0
首次发布。
![](https://csdnimg.cn/release/download_crawler_static/12606582/bg3.jpg)
© 2020
大疆创新
版权所有
3
目录
前置参考阅读 .................................................................................................................... 2
修改日志 ........................................................................................................................... 2
0. 开发板 C 型,cubeMX 与 keil 入门 .............................................................................. 12
0.1 知识要点 .................................................................................................................. 12
0.2 课程内容 .................................................................................................................. 12
0.3 基础学习 .................................................................................................................. 12
0.4 程序学习 .................................................................................................................. 14
0.4.1 软件环境 ........................................................................................................ 14
0.4.2 cubeMX 新建工程 .......................................................................................... 15
0.4.3 keil 软件简易入门 ........................................................................................... 18
0.4.4 Keil 的调试模式 .............................................................................................. 22
0.5 RoboMaster 机器人功能简介 ................................................................................... 24
0.6 课程总结 .................................................................................................................. 24
1. 点亮 LED ................................................................................................................. 25
1.1 知识要点 .......................................................................................................... 25
1.2 课程内容 .......................................................................................................... 25
1.3 基础学习 .......................................................................................................... 25
1.3.1 LED 灯基本知识 ............................................................................................. 25
1.4 程序学习 .......................................................................................................... 26
1.4.1 cubeMX 中配置 GPIO 基本操作 ............................................................... 26
1.4.2 HAL_GPIO_WritePin 函数讲解 ................................................................ 27
1.4.3 程序流程 ................................................................................................... 28
1.4.4 效果展示 ................................................................................................... 29
1.5 进阶学习 .......................................................................................................... 30
1.5.1 三极管的通断特性 ..................................................................................... 30
1.5.2 LED 的下拉电阻........................................................................................ 30
1.5.3 硬件原理图上的限流电阻 .......................................................................... 32
1.6 课程总结 .......................................................................................................... 32
2. 闪烁 LED ................................................................................................................. 34
2.1 知识要点 .......................................................................................................... 34
2.2 课程内容 .......................................................................................................... 34
2.3 基础学习 .......................................................................................................... 34
2.3.1 GPIO 的翻转速度 ........................................................................................... 34
![](https://csdnimg.cn/release/download_crawler_static/12606582/bg4.jpg)
4 ©
2020
大疆创新
版权所有
2.4 程序学习 .......................................................................................................... 36
2.4.1 计数延时介绍 ............................................................................................ 36
2.4.2 nop 延时介绍 ............................................................................................ 37
2.4.3 滴答计时器介绍以及 HAL_Init 初始化 ...................................................... 38
2.4.4 HAL_Delay 介绍 ....................................................................................... 40
2.4.5 HAL_GPIO_TogglePin 介绍 ..................................................................... 41
2.4.6 程序流程 ................................................................................................... 42
2.4.7 效果展示 ................................................................................................... 43
2.5 课程总结 .......................................................................................................... 44
3. 定时器闪烁 LED ...................................................................................................... 45
3.1 知识要点 .......................................................................................................... 45
3.2 课程内容 .......................................................................................................... 45
3.3 基础学习 .......................................................................................................... 45
3.3.1 定时器讲解................................................................................................ 45
3.3.2 中断讲解 ................................................................................................... 46
3.4 程序学习 .......................................................................................................... 47
3.4.1 定时器在 cubeMX 中配置 ......................................................................... 47
3.4.2 中断优先级讲解 ........................................................................................ 50
3.4.3 cubeMX 中的中断配置以及中断函数管理 ................................................ 51
3.4.4 定时器回调函数介绍 ................................................................................. 53
3.4.5 HAL_TIM_Base_Start 函数 ...................................................................... 54
3.4.6 程序流程 ................................................................................................... 55
3.4.7 效果展示 ................................................................................................... 56
3.5 进阶学习 .......................................................................................................... 56
3.5.1 APB 总线计算定时器定时时间 ....................................................................... 56
3.6 课程总结 .......................................................................................................... 59
4. PWM 控制 LED 的亮度 ........................................................................................... 60
4.1 知识要点 .......................................................................................................... 60
4.2 课程内容 .......................................................................................................... 60
4.3 基础学习 .......................................................................................................... 60
4.3.1 PWM 基本知识 ......................................................................................... 60
4.3.2 aRGB 三原色 ............................................................................................ 61
4.4 程序学习 .......................................................................................................... 61
4.4.1 PWM 在 cubeMX 中配置 .......................................................................... 61
![](https://csdnimg.cn/release/download_crawler_static/12606582/bg5.jpg)
© 2020
大疆创新
版权所有
5
4.4.2 PWM 配置介绍 ......................................................................................... 63
4.4.3 HAL_TIM_PWM_Start 函数介绍 .............................................................. 64
4.4.4 程序流程 ................................................................................................... 66
4.4.5 效果展示 ................................................................................................... 67
4.5 课程总结 .......................................................................................................... 67
5. 常见的 PWM 设备 ................................................................................................... 68
5.1 知识要点 .......................................................................................................... 68
5.2 课程内容 .......................................................................................................... 68
5.3 基础学习 .......................................................................................................... 68
5.3.1 蜂鸣器 ....................................................................................................... 68
5.3.2 舵机的控制................................................................................................ 69
5.4 程序学习 .......................................................................................................... 71
5.4.1 蜂鸣器的 PWM 在 cubeMX 中配置 ........................................................... 71
5.4.2 蜂鸣器的程序流程 ..................................................................................... 73
5.4.3 效果展示 ................................................................................................... 76
5.4.4 舵机的 PWM 在 cubeMX 中配置 .............................................................. 76
5.4.5 舵机主程序讲解 ........................................................................................ 79
5.4.6 舵机效果演示 ............................................................................................ 80
5.5 课程总结 .......................................................................................................... 81
5.6 上一节作业讲解................................................................................................ 82
程序流程 .................................................................................................................. 82
6. 按键的外部中断 ....................................................................................................... 85
6.1 知识要点 .......................................................................................................... 85
6.2 课程内容 .......................................................................................................... 85
6.3 基础学习 .......................................................................................................... 85
6.3.1 按键原理图介绍 ........................................................................................ 85
6.3.2 按键软件消抖 ............................................................................................ 86
6.3.3 外部中断 ................................................................................................... 87
6.4 程序学习 .......................................................................................................... 87
6.4.1 外部中断在 cubeMX 中的配置 .................................................................. 87
6.4.2 HAL_GPIO_ReadPin 函数介绍 ................................................................ 89
6.4.3 中断回调函数介绍 ..................................................................................... 89
6.4.4 程序中的前后台 ........................................................................................ 90
6.4.5 程序流程 ................................................................................................... 90