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