STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
STM32F429 开发指南 
V1.1 – HAL 库版本 
   
−ALIENTEK 阿波罗 STM32F429 开发板教程 
 
 
   
 
 
I 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
广州市星翼电子科技有限公司 
淘宝店铺 1:http://eboard.taobao.com   
淘宝店铺 2:http://openedv.taobao.com         
技术支持论坛  (开源电子网)  :www.openedv.com 
官方网站:www.alientek.com 
最新资料下载链接:http://www.openedv.com/posts/list/13912.htm 
E-mail: 389063473@qq.com        QQ: 389063473 
咨询电话:020-38271790   
传真号码:020-36773971 
团队:正点原子团队 
如果您想及时免费获取“正点原子”最新资料,敬请关注正点原子 
友  情  提  示 
正点原子,做最全面、最优秀的嵌入式开发平台软硬件供应商。 
 
 
 
   
 
 
 
 
 
 
 
   
微信公众平台,我们将及时给您发布最新消息和重要资料。 
关注方法: 
(1)微信“扫一扫”,扫描右侧二维码,添加关注 
(2)微信添加朋友公众号输入“正点原子”关注 
(3)微信添加朋友输入“alientek_stm32” 关注   
 
II 
 
 
 
 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
内容简介 ........................................................................................................................ I 
前言 ................................................................................................................................ 2 
第一篇  硬件篇 .............................................................................................................. 4 
第一章  实验平台简介 .................................................................................................. 5 
 
1.1 ALIENTEK 阿波罗 STM32F4/F7 开发板资源初探 ........................................... 5 
1.1.1  阿波罗 STM32 开发板底板资源 ..................................................................... 5 
1.1.2 STM32F429 核心板资源 ................................................................................... 7 
1.2 ALIENTEK 阿波罗 STM32 开发板资源说明 .................................................... 8 
1.2.1  硬件资源说明 ................................................................................................... 8 
1.2.2  软件资源说明 ................................................................................................. 14 
1.2.3  阿波罗  IO 引脚分配 ...................................................................................... 15 
第二章  实验平台硬件资源详解 ................................................................................ 21 
2.1  开发板底板原理图详解 .................................................................................... 21 
2.1.1  核心板接口 ..................................................................................................... 21 
2.1.2  引出 IO 口 ....................................................................................................... 21 
2.1.3 USB 串口/串口 1 选择接口 ............................................................................ 22 
2.1.4 JTAG/SWD ....................................................................................................... 22 
2.1.5  参考电压选择端口 ......................................................................................... 23 
2.1.6 LCD 模块接口 ................................................................................................. 23 
2.1.7  复位电路 ......................................................................................................... 24 
2.1.8  启动模式设置接口 ......................................................................................... 24 
2.1.9 VBAT 供电接口 ............................................................................................... 25 
2.1.10 RS232 串口 .................................................................................................... 25 
2.1.11 RS485 接口 .................................................................................................... 26 
2.1.12 CAN/USB 接口 .............................................................................................. 26 
2.1.13  光环境传感器 ............................................................................................... 27 
2.1.14 IIC IO 扩展 ..................................................................................................... 27 
2.1.15  九轴传感器 ................................................................................................... 28 
2.1.16  温湿度传感器接口 ....................................................................................... 29 
2.1.17  红外接收头 ................................................................................................... 29 
2.1.18 WIRELESS 模块接口 .................................................................................... 29 
2.1.19 LED ................................................................................................................ 30 
2.1.20  按键 ............................................................................................................... 30 
 
III 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
2.1.21 TPAD 电容触摸按键 ..................................................................................... 31 
2.1.22 OLED/摄像头模块接口 ................................................................................ 31 
2.1.23  有源蜂鸣器 ................................................................................................... 32 
2.1.24 SD 卡接口 ...................................................................................................... 32 
2.1.25 ATK 模块接口 ................................................................................................ 33 
2.1.26  多功能端口 ................................................................................................... 33 
2.1.27  光纤输入接口 ............................................................................................... 34 
2.1.28  以太网接口(RJ45) ................................................................................... 35 
2.1.29 I2S 音频编解码器 .......................................................................................... 35 
2.1.30  电源 ............................................................................................................... 36 
2.1.31  电源输入输出接口 ....................................................................................... 37 
2.1.32 USB 串口 ....................................................................................................... 38 
2.2 STM32F429 核心板原理图详解 ........................................................................ 38 
2.2.1 MCU ................................................................................................................. 38 
2.2.2  底板接口 ......................................................................................................... 40 
2.2.3 SWD 调试接口 ................................................................................................ 40 
2.2.4 SDRAM ............................................................................................................ 41 
2.2.5 NAND FLASH ................................................................................................. 41 
2.2.6 SPI FLASH ....................................................................................................... 42 
2.2.7 EEPROM .......................................................................................................... 42 
2.2.8 RGB LCD 接口 ................................................................................................ 43 
2.2.9  串口 ................................................................................................................. 43 
2.2.10 Micro USB 接口 ............................................................................................. 44 
2.2.11  按键 ............................................................................................................... 44 
2.2.12 LED ................................................................................................................ 44 
2.2.13  电源 ............................................................................................................... 45 
2.3  开发板使用注意事项 ........................................................................................ 45 
2.3 STM32F429 学习方法 ........................................................................................ 46 
第二篇  软件篇 ............................................................................................................ 48 
第三章  软件入门 ........................................................................................................ 49 
3.1 MDK5 简介与安装 ............................................................................................. 49 
3.2 STM32CubeF4 简介 ........................................................................................... 50 
3.2.1 库开发与寄存器开发的关系 ....................................................................... 50 
 
IV 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
3.2.2 STM32CubeF4 固件包介绍 .......................................................................... 51 
3.2.3 HAL 库和标准库选择 .................................................................................. 54 
3.3  新建基于 HAL 库的工程模板和工程结构讲解 .............................................. 55 
3.3.1  新建基于 HAL 库工程模板 ........................................................................... 55 
3.3.2 工程模板解读 .................................................................................................. 82 
3.3.2.1  关键文件介绍 .............................................................................................. 82 
3.3.2.2 HAL 库中__weak 修饰符讲解 .................................................................... 85 
3.3.2.3 Msp 回调函数执行过程解读 ....................................................................... 86 
3.3.2.4  程序执行流程图 .......................................................................................... 88 
3.4  程序下载与调试 ................................................................................................ 90 
3.4.1 STM32 串口程序下载 ..................................................................................... 90 
3.4.2  使用 ST-LINK 下载与调试程序 .................................................................... 96 
3.5 MDK5 使用技巧 ............................................................................................... 106 
3.5.1  文本美化 ....................................................................................................... 106 
3.5.2  语法检测&代码提示 .................................................................................... 108 
3.5.3  代码编辑/查看技巧 ...................................................................................... 110 
3.5.4  其他小技巧 ................................................................................................... 114 
第四章  STM32F4 基础知识入门 ............................................................................. 116 
4.1 MDK 下 C 语言基础复习 ................................................................................ 116 
4.1.1  位操作 ........................................................................................................... 116 
4.1.2 define 宏定义 ................................................................................................. 117 
4.1.3# ifdef 和  #if defined 条件编译 ..................................................................... 117 
4.1.4 extern 变量申明 ............................................................................................. 118 
4.1.5 typedef 类型别名 ........................................................................................... 119 
4.1.6  结构体 ........................................................................................................... 119 
4.2 STM32F4 总线架构 .......................................................................................... 121 
4.3 STM32F429 时钟系统 ...................................................................................... 122 
4.3.1 STM32F429 时钟树概述 ............................................................................... 123 
4.3.2 STM32F429 时钟系统配置 ........................................................................... 127 
4.3.3 STM32F4 时钟使能和配置 ........................................................................... 132 
4.4    IO 引脚复用器和映射 ................................................................................... 133 
4.5 STM32 NVIC 中断优先级管理 ....................................................................... 137 
4.6 HAL 库中寄存器地址名称映射分析 .............................................................. 140 
 
V 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
4.7 MDK 中使用 HAL 库快速组织代码技巧 ....................................................... 143 
4.8  手把手教你入门 STM32CubeMX 图形配置工具 ......................................... 148 
4.8.1 STM32CubeMX 简介 .................................................................................... 148 
4.8.2 STM32CubeMX 运行环境搭建 .................................................................... 149 
4.8.3  使用 STM32CubeMX 工具配置工程模板 .................................................. 153 
4.8.3.1  工程初步建立和保存 ................................................................................ 153 
4.8.3.2 RCC 设置 .................................................................................................... 157 
4.8.3.3  时钟系统(时钟树)配置 ........................................................................ 159 
4.8.3.4 GPIO 功能引脚配置 ................................................................................... 161 
4.8.3.5  生成工程源码 ............................................................................................ 164 
4.8.3.6  编写用户程序 ............................................................................................ 166 
第五章  SYSTEM 文件夹介绍 ................................................................................. 170 
5.1 delay 文件夹代码介绍 ..................................................................................... 170 
5.1.1  操作系统支持宏定义及相关函数 ............................................................... 171 
5.1.2 delay_init 函数 ............................................................................................... 173 
5.1.3 delay_us 函数 ................................................................................................. 174 
5.1.4 delay_ms 函数 ................................................................................................ 175 
5.1.5 HAL 库延时函数 HAL_Delay 解析 ............................................................. 176 
5.2 sys 文件夹代码介绍 ......................................................................................... 178 
5.2.1    IO 口的位操作实现 .................................................................................... 178 
5.3 usart 文件夹介绍 .............................................................................................. 179 
5.3.1 printf 函数支持 .............................................................................................. 180 
第三篇  实战篇 .......................................................................................................... 181 
第六章  跑马灯实验 .................................................................................................. 182 
6.1 STM32F4 IO 简介 ............................................................................................ 182 
6.2  硬件设计 .......................................................................................................... 189 
6.3  软件设计 .......................................................................................................... 189 
6.4  下载验证 .......................................................................................................... 198 
6.5 STM32CubeMX 配置 IO 口输入 ..................................................................... 200 
第七章  按键输入实验 .............................................................................................. 204 
7.1 STM32F4 IO 口简介 ........................................................................................ 204 
7.2  硬件设计 .......................................................................................................... 204 
7.3  软件设计 .......................................................................................................... 204 
 
VI 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
7.4 下载验证 ........................................................................................................... 208 
7.5 STM32CubeMX 配置 IO 口输出 ..................................................................... 208 
第八章  串口通信实验 .............................................................................................. 211 
8.1 STM32F429 串口简介 ...................................................................................... 211 
8.2  硬件设计 .......................................................................................................... 216 
8.3  软件设计 .......................................................................................................... 216 
8.4  下载验证 .......................................................................................................... 223 
8.5 STM32CubeMX 配置串口 ............................................................................... 225 
第九章  外部中断实验 .............................................................................................. 231 
9.1 STM32F4 外部中断简介 .................................................................................. 231 
9.2  硬件设计 .......................................................................................................... 234 
9.3  软件设计 .......................................................................................................... 234 
9.4  下载验证 .......................................................................................................... 237 
9.5 STM32CubeMX 配置外部中断 ....................................................................... 238 
第十章  独立看门狗(IWDG)实验 ....................................................................... 241 
10.1 STM32F4 独立看门狗简介 ............................................................................ 241 
10.2  硬件设计 ........................................................................................................ 244 
10.3  软件设计 ........................................................................................................ 244 
10.4  下载验证 ........................................................................................................ 245 
10.5 STM32CubeMX 配置 IWDG ......................................................................... 245 
第十一章  窗口门狗(WWDG)实验 ..................................................................... 247 
11.1 STM32F4 窗口看门狗简介 ............................................................................ 247 
11.2  硬件设计 ........................................................................................................ 250 
11.3  软件设计 ........................................................................................................ 250 
11.4  下载验证 ........................................................................................................ 252 
11.5 STM32CubeMX 配置 WWDG ....................................................................... 252 
第十二章  定时器中断实验 ...................................................................................... 254 
12.1 STM32F429 通用定时器简介 ........................................................................ 254 
12.2  硬件设计 ........................................................................................................ 259 
12.3  软件设计 ........................................................................................................ 259 
12.4  下载验证 ........................................................................................................ 261 
12.5 STM32CubeMX 配置定时器更新中断功能 ................................................. 261 
第十三章  PWM 输出实验 ........................................................................................ 263 
 
VII 
 
STM32F429 开发指南(HAL 库版) 
ALIENTEK 阿波罗 STM32F429 开发板教程 
 
13.1 PWM 简介 ....................................................................................................... 263 
13.2  硬件设计 ........................................................................................................ 267 
13.3  软件设计 ........................................................................................................ 268 
13.4  下载验证 ........................................................................................................ 270 
13.5 STM32CubeMX 配置定时器 PWM 输出功能 ............................................. 270 
第十四章  输入捕获实验 .......................................................................................... 272 
14.1  输入捕获简介 ................................................................................................ 272 
14.2  硬件设计 ........................................................................................................ 277 
14.3  软件设计 ........................................................................................................ 278 
14.4  下载验证 ........................................................................................................ 282 
14.5 STM32CubeMX 配置定时器输入捕获功能 ................................................. 282 
第十五章  电容触摸按键实验 .................................................................................. 284 
15.1  电容触摸按键简介 ........................................................................................ 284 
15.2  硬件设计 ........................................................................................................ 285 
15.3  软件设计 ........................................................................................................ 285 
15.4  下载验证 ........................................................................................................ 290 
第十六章  OLED 显示实验 ...................................................................................... 292 
16.1 OLED 简介 ..................................................................................................... 292 
16.2  硬件设计 ........................................................................................................ 298 
16.3  软件设计 ........................................................................................................ 298 
16.4  下载验证 ........................................................................................................ 306 
第十七章  TFTLCD(MCU 屏)实验 ..................................................................... 308 
17.1 TFTLCD&FMC 简介 ...................................................................................... 308 
17.1.1 TFTLCD 简介 .............................................................................................. 308 
17.1.2 FMC 简介 ..................................................................................................... 314 
17.2  硬件设计 ........................................................................................................ 323 
17.3  软件设计 ........................................................................................................ 324 
17.4  下载验证 ........................................................................................................ 334 
17.5 STM32CubeMX 配置 FMC(SRAM) ........................................................ 334 
第十八章  SDRAM 实验 ........................................................................................... 336 
18.1 SDRAM 简介 .................................................................................................. 336 
18.1.1 SDRAM 简介 ............................................................................................... 336 
18.1.2 FMC SDRAM 接口简介 ............................................................................. 345 
 
VIII