STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
STM32F1 开发指南
V1.0(精英板-HAL 库版本)
−ALIENTEK 精英 STM32F103 开发板教程
I
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
广州市星翼电子科技有限公司
淘宝店铺 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
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
内容简介 ........................................................................................................................ I
前言 ................................................................................................................................ 2
第一篇 硬件篇 .............................................................................................................. 4
第一章 实验平台简介 .................................................................................................. 5
1.1 ALIENTEK 精英 STM32F103 资源初探 ............................................................ 5
1.2 ALIENTEK 精英 STM32F103 资源说明 ............................................................ 7
1.2.1 硬件资源说明 ................................................................................................... 7
1.2.2 软件资源说明 ................................................................................................. 11
1.2.3 精英板 IO 引脚分配 ....................................................................................... 12
1.3 ALIENTEK 精英板与战舰板 V3.0 对比 .......................................................... 15
第二章 实验平台硬件资源详解 ................................................................................ 17
2.1 开发板原理图详解 ............................................................................................ 17
2.1.1 MCU ................................................................................................................. 17
2.1.2 引出 IO 口 ....................................................................................................... 19
2.1.3 USB 串口/串口 1 选择接口 ............................................................................ 19
2.1.4 JTAG/SWD ....................................................................................................... 20
2.1.5 LCD 模块接口 ................................................................................................. 20
2.1.6 复位电路 ......................................................................................................... 21
2.1.7 启动模式设置接口 ......................................................................................... 21
2.1.8 R485 选择接口 ................................................................................................ 22
2.1.9 RS485 接口 ...................................................................................................... 22
2.1.10 CAN/USB 接口 .............................................................................................. 22
2.1.11 EEPROM ........................................................................................................ 23
2.1.12 光敏传感器 ................................................................................................... 23
2.1.13 SPI FLASH ..................................................................................................... 24
2.1.14 温湿度传感器接口 ....................................................................................... 24
2.1.15 红外接收头 ................................................................................................... 25
2.1.16 无线模块接口 ............................................................................................... 25
2.1.17 LED ................................................................................................................ 25
2.1.18 按键 ............................................................................................................... 26
2.1.19 TPAD 电容触摸按键 ..................................................................................... 26
III
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
2.1.20 OLED/摄像头模块接口 ................................................................................ 27
2.1.21 有源蜂鸣器 ................................................................................................... 27
2.1.22 SD 卡接口 ...................................................................................................... 28
2.1.23 ATK 模块接口 ................................................................................................ 28
2.1.24 AD/DA 组合接口 ........................................................................................... 29
2.1.25 电源 ............................................................................................................... 29
2.1.26 电源输入输出接口 ....................................................................................... 30
2.1.27 USB 串口 ....................................................................................................... 30
2.2 开发板使用注意事项 ......................................................................................... 31
2.3 STM32F103 学习方法 ........................................................................................ 32
第二篇 软件篇 ............................................................................................................ 34
第三章 MDK5 软件入门 ............................................................................................ 35
3.1 MDK5 简介 ......................................................................................................... 35
3.2 STM32CubeF1 简介 .......................................................................................... 36
3.2.1 库开发与寄存器开发的关系 ....................................................................... 36
3.2.2 STM32CubeF1 固件包介绍 ......................................................................... 37
3.2.3 HAL 库和标准库选择 ................................................................................. 39
3.3 新建基于 HAL 库的工程模板和工程结构讲解 ............................................. 39
3.3.1 新建基于 HAL 库工程模板 .......................................................................... 39
3.3.2 工程模板解读 .................................................................................................. 60
3.3.2.1 关键文件介绍 .............................................................................................. 60
3.3.2.2 HAL 库中__weak 修饰符讲解 ................................................................... 62
3.3.2.3 Msp 回调函数执行过程解读 ...................................................................... 63
3.3.2.4 程序执行流程图 .......................................................................................... 64
3.4 程序下载与调试 ................................................................................................ 66
3.4.1 STM32 串口程序下载 .................................................................................... 66
3.4.2 使用 ST-LINK 下载与调试程序 ................................................................... 71
3.5 MDK5 使用技巧 ................................................................................................ 77
3.5.1 文本美化 ......................................................................................................... 77
3.5.2 语法检测&代码提示 ...................................................................................... 80
3.5.3 代码编辑/查看技巧 ........................................................................................ 82
3.5.4 其他小技巧 ..................................................................................................... 86
第四章 STM32F1 基础知识入门 .............................................................................. 88
IV
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
4.1 MDK 下 C 语言基础复习 ................................................................................. 88
4.1.1 位操作 ............................................................................................................. 88
4.1.2 define 宏定义 ................................................................................................... 89
4.1.3# ifdef 和 #if defined 条件编译 ...................................................................... 89
4.1.4 extern 变量申明 .............................................................................................. 90
4.1.5 typedef 类型别名 ............................................................................................ 91
4.1.6 结构体 ............................................................................................................. 91
4.2 STM32F1 系统架构 ........................................................................................... 93
4.3 STM32F103 时钟系统 ....................................................................................... 94
4.3.1 STM32F103 时钟树概述 ................................................................................ 94
4.3.2 STM32F103 时钟系统配置 ............................................................................ 96
4.3.3 STM32F1 时钟使能和配置 .......................................................................... 100
4.4 端口复用和重映射 .......................................................................................... 101
4.5 STM32 NVIC 中断优先级管理 ...................................................................... 102
4.6 HAL 库中寄存器地址名称映射分析 ............................................................. 106
4.7 MDK 中使用 HAL 库快速组织代码技巧 ..................................................... 108
第五章 SYSTEM 文件夹介绍 ................................................................................. 113
5.1 delay 文件夹代码介绍 ..................................................................................... 113
5.1.1 操作系统支持宏定义及相关函数 ............................................................... 114
5.1.2 delay_init 函数 .............................................................................................. 116
5.1.3 delay_us 函数 ................................................................................................ 117
5.1.4 delay_ms 函数 ............................................................................................... 119
5.1.5 HAL 库延时函数 HAL_Delay 解析 ............................................................ 120
5.2 sys 文件夹代码介绍 ......................................................................................... 122
5.2.1 IO 口的位操作实现 ................................................................................... 122
5.3 usart 文件夹介绍 ............................................................................................. 123
5.3.1 printf 函数支持 ............................................................................................. 124
第三篇 实战篇 .......................................................................................................... 125
第六章 跑马灯实验 .................................................................................................. 126
6.1 STM32F1 IO 简介 ............................................................................................ 127
6.2 硬件设计 .......................................................................................................... 132
6.3 软件设计 .......................................................................................................... 132
6.4 下载验证 .......................................................................................................... 140
V
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
第七章 蜂鸣器实验 .................................................................................................. 142
7.1 蜂鸣器简介 ...................................................................................................... 143
7.2 硬件设计 .......................................................................................................... 143
7.3 软件设计 .......................................................................................................... 144
7.4 下载验证 .......................................................................................................... 146
第八章 按键输入实验 .............................................................................................. 147
8.1 STM32F1 IO 口简介 ........................................................................................ 148
8.2 硬件设计 .......................................................................................................... 148
8.3 软件设计 .......................................................................................................... 148
8.4 下载验证 ........................................................................................................... 152
第九章 串口通信实验 .............................................................................................. 153
9.1 STM32F1 串口简介 .......................................................................................... 154
9.2 硬件设计 .......................................................................................................... 159
9.3 软件设计 .......................................................................................................... 160
9.4 下载验证 .......................................................................................................... 167
第十章 外部中断实验 .............................................................................................. 170
10.1 STM32F1 外部中断简介 ................................................................................ 171
10.2 硬件设计 ........................................................................................................ 173
10.3 软件设计 ........................................................................................................ 173
10.4 下载验证 ........................................................................................................ 176
第十一章 独立看门狗(IWDG)实验 ................................................................... 177
11.1 STM32F1 独立看门狗简介 ............................................................................ 178
11.2 硬件设计 ........................................................................................................ 181
11.3 软件设计 ........................................................................................................ 181
11.4 下载验证 ........................................................................................................ 182
第十二章 窗口门狗(WWDG)实验 ..................................................................... 183
12.1 STM32F1 窗口看门狗简介 ............................................................................ 184
12.2 硬件设计 ........................................................................................................ 187
12.3 软件设计 ........................................................................................................ 187
12.4 下载验证 ........................................................................................................ 189
第十三章 定时器中断实验 ...................................................................................... 190
13.1 STM32F1 通用定时器简介 ............................................................................ 191
VI
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
13.2 硬件设计 ........................................................................................................ 195
13.3 软件设计 ........................................................................................................ 195
13.4 下载验证 ........................................................................................................ 198
第十四章 PWM 输出实验 ........................................................................................ 199
14.1 PWM 简介 ....................................................................................................... 200
14.2 硬件设计 ........................................................................................................ 204
14.3 软件设计 ........................................................................................................ 204
14.4 下载验证 ........................................................................................................ 207
第十五章 输入捕获实验 .......................................................................................... 208
15.1 输入捕获简介 ................................................................................................ 209
15.2 硬件设计 ........................................................................................................ 214
15.3 软件设计 ........................................................................................................ 214
15.4 下载验证 ........................................................................................................ 218
第十六章 电容触摸按键实验 .................................................................................. 220
16.1 电容触摸按键简介 ........................................................................................ 221
16.2 硬件设计 ........................................................................................................ 222
16.3 软件设计 ........................................................................................................ 222
16.4 下载验证 ........................................................................................................ 227
第十七章 OLED 显示实验 ...................................................................................... 229
17.1 OLED 简介 ..................................................................................................... 230
17.2 硬件设计 ........................................................................................................ 236
17.3 软件设计 ........................................................................................................ 237
17.4 下载验证 ........................................................................................................ 244
第十八章 TFTLCD 显示实验 .................................................................................. 246
18.1 TFTLCD&FSMC 简介 ................................................................................... 247
18.1.1 TFTLCD 简介 .............................................................................................. 247
18.1.2 FSMC 简介 .................................................................................................. 252
18.2 硬件设计 ........................................................................................................ 261
18.3 软件设计 ........................................................................................................ 262
18.4 下载验证 ........................................................................................................ 273
第十九章 USMART 调试组件实验 ......................................................................... 274
19.1 USMART 调试组件简介 ................................................................................ 275
19.2 硬件设计 ........................................................................................................ 278
VII
STM32F1 开发指南(精英板-HAL 库版)
ALIENTEK 精英 STM32F103 开发板教程
19.3 软件设计 ........................................................................................................ 278
19.4 下载验证 ........................................................................................................ 281
第二十章 RTC 实时时钟实验 .................................................................................. 286
20.1 STM32F1 RTC 时钟简介 ............................................................................... 287
20.2 硬件设计 ........................................................................................................ 295
20.3 软件设计 ........................................................................................................ 295
20.4 下载验证 ........................................................................................................ 301
第二十一章 待机唤醒实验 ...................................................................................... 303
21.1 STM32F1 待机模式简介 ................................................................................ 304
21.2 硬件设计 ........................................................................................................ 307
21.3 软件设计 ........................................................................................................ 307
21.4 下载与测试 .................................................................................................... 310
第二十二章 ADC 实验 ............................................................................................. 311
22.1 STM32F1 ADC 简介 ...................................................................................... 312
22.2 硬件设计 ........................................................................................................ 319
22.3 软件设计 ........................................................................................................ 319
22.4 下载验证 ........................................................................................................ 322
第二十三章 内部温度传感器实验 .......................................................................... 324
23.1 STM32F1 内部温度传感器简介 ................................................................... 325
23.2 硬件设计 ........................................................................................................ 325
23.3 软件设计 ........................................................................................................ 325
23.4 下载验证 ........................................................................................................ 327
第二十四章 光敏传感器实验 .................................................................................. 328
24.1 光敏传感器简介 ............................................................................................ 329
24.2 硬件设计 ........................................................................................................ 329
24.3 软件设计 ........................................................................................................ 329
24.4 下载验证 ........................................................................................................ 332
第二十五章 DAC 实验 ............................................................................................. 334
25.1 STM32F1 DAC 简介 ...................................................................................... 335
25.2 硬件设计 ........................................................................................................ 339
25.3 软件设计 ........................................................................................................ 340
25.4 下载验证 ........................................................................................................ 343
第二十六章 DMA 实验 ............................................................................................ 345
VIII