RM0090
参考手册
STM32F40xxx、STM32F41xxx、STM32F42xxx、STM32F43xxx
基于
ARM
内核的
32
½高级
MCU
前言
本参考手册面向应用开发人员,提供有关½用
STM32F405xx/07xx、STM32F415xx/17xx、
STM32F42xxx
和
STM32F43xxx
微控制器存储器与外设的完整信息。
STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx
和
STM32F43xxx
构 成 一 个 微
控制器系列,各产品具有不同的存储器大小、封装和外设。
有关订购信息以及器件的机械与电气特性,请参见数据手册。
有关
ARM Cortex™-M4F
内核的信息,请参见《Cortex™-M4F 技术参考手册》。
相关文档
意法半导½½站
(http://www.st.com)
提供以下文档:
■
STM32F40x
■
STM32F42x
■
和
STM32F41x
数据手册
和
STM32F43x
产品简介
有关带
FPU
的
ARM Cortex™-M4
内核的信息,请参见《STM32F3xx/F4xxx
Cortex™-
M4
编程手册》
(PM0214)。
适用产品
产品系列
料号和产品类别
STM32F405xx、STM32F407xx、STM32F415xx、
STM32F417xx、STM32F427xx、STM32F437xx
表
1.
微控制器
2013
年
02
月
文档
ID 018909
第
4
版
www.st.com
1/1284
目½
RM0090
目½
1
文档约定
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.1
1.2
1.3
寄存器相关缩写词列表
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
词汇表
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
外设可用性
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2
存储器和总线架构
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1
系统架构
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.1.9
S0:I
总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S1:D
总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S2:S
总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S3、S4:DMA
存储器总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S5:DMA
外设总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S6:以太½ DMA
总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
S7:USB OTG HS DMA
总线
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
总线矩阵
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
AHB/APB
总线桥
(APB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2
2.3
存储器组织结构
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
存储器映射
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.1
2.3.2
2.3.3
嵌入式
SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Flash
概述
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
½段
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4
自举配½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3
嵌入式
Flash
接口
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1
3.2
3.3
3.4
前言
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
主要特性
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
嵌入式
Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
读接口
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1
3.4.2
CPU
时钟频率与
Flash
读取时间之间的关系
. . . . . . . . . . . . . . . . . . . . . 60
自适应实时存储器加速器
(ART Accelerator™) . . . . . . . . . . . . . . . . . . . 62
3.5
擦除和编程操½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5.1
3.5.2
Flash
控制寄存器解锁
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
编程/擦除并行½数
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2/1284
文档
ID 018909
第
4
版
RM0090
3.5.3
3.5.4
3.5.5
目½
擦除
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
编程
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
中断
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6
选项字节
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.1
3.6.2
3.6.3
3.6.4
关于用户选项字节的说明
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
用户选项字节编程
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
读保护
(RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
写保护
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.7
3.8
一次性可编程字节
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Flash
接口寄存器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.8.1
3.8.2
3.8.3
3.8.4
3.8.5
3.8.6
3.8.7
3.8.8
3.8.9
Flash
访问控制寄存器
(FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Flash
密钥寄存器
(FLASH_KEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Flash
选项密钥寄存器
(FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . . . . 74
Flash
状态寄存器
(FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
Flash
控制寄存器
(FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
用于
STM32F42xxx
和
STM32F43xxx的
Flash
控制寄存器
(FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Flash
选项控制寄存器
(FLASH_OPTCR) . . . . . . . . . . . . . . . . . . . . . . . 79
用于
STM32F42xxx
和
STM32F43xxx
的
Flash
选项控制寄存器
(FLASH_OPTCR1) . . . . . . . . . . . . . . . . . . . . . . 80
Flash
接口寄存器映射
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4
CRC
计算单元
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.1
4.2
4.3
4.4
CRC
简介
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
CRC
主要特性
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
CRC
功½说明
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
CRC
寄存器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4.1
4.4.2
4.4.3
4.4.4
数据寄存器
(CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
独立数据寄存器
(CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
控制寄存器
(CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
CRC
寄存器映射
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5
电源控制器
(PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1
电源
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.1
5.1.2
5.1.3
独立
A/D
½换器电源和参考电压
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
电池备½域
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
调压器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
文档
ID 018909
第
4
版
3/1284
32
目½
RM0090
5.2
电源监控器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.1
5.2.2
5.2.3
上电复½
(POR)/
掉电复½
(PDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
欠压复½
(BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
可编程电压检测器
(PVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3
½功耗模式
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
降½系统时钟速度
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
外设时钟门控
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
睡眠模式
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
停止模式
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
待机模式
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
对
RTC
复用功½进行编程以从停止模式和待机模式唤醒器件
. . . . . . . . 98
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
PWR
电源控制寄存器
(PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
用于STM32F42xxx 和
STM32F43xxx
的
PWR
电源控制寄存器
(PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
PWR
电源控制
/状态寄存器 (PWR_CSR) . . . . . . . . . . . . . . . . . . . . . . 103
5.4
电源控制寄存器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4.1
5.4.2
5.4.3
5.5
PWR
寄存器映射
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6
复½和时钟控制
(RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1
复½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1.1
6.1.2
6.1.3
系统复½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
电源复½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
备½域复½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6
6.2.7
6.2.8
6.2.9
6.2.10
6.2.11
HSE
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
HSI
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
PLL
配½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
LSE
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
LSI
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
系统时钟
(SYSCLK)
选择
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
时钟安全系统
(CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
RTC/AWU
时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
看门狗时钟
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
时钟输出功½
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
基于
TIM5/TIM11
的内部/外部时钟测量
. . . . . . . . . . . . . . . . . . . . . . . 113
4/1284
文档
ID 018909
第
4
版
RM0090
目½
6.3
RCC
寄存器
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.3.1
6.3.2
6.3.3
6.3.4
6.3.5
6.3.6
6.3.7
6.3.8
6.3.9
6.3.10
6.3.11
6.3.12
6.3.13
6.3.14
6.3.15
6.3.16
6.3.17
6.3.18
6.3.19
6.3.20
6.3.21
6.3.22
6.3.23
6.3.24
6.3.25
RCC
时钟控制寄存器
(RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
RCC PLL
配½寄存器
(RCC_PLLCFGR) . . . . . . . . . . . . . . . . . . . . . . . 116
RCC
时钟配½寄存器
(RCC_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . 118
RCC
时钟中断寄存器
(RCC_CIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
RCC AHB1
外设复½寄存器
(RCC_AHB1RSTR) . . . . . . . . . . . . . . . . 123
RCC AHB2
外设复½寄存器
(RCC_AHB2RSTR) . . . . . . . . . . . . . . . . 125
RCC AHB3
外设复½寄存器
(RCC_AHB3RSTR) . . . . . . . . . . . . . . . . 125
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
RCC APB1
外设复½寄存器
(RCC_APB1RSTR) . . . . . . . . . . . . . . . . 126
用于
STM32F42xxx
和
STM32F43xxx
的
RCC APB1
外设复½寄存器
(RCC_APB1RSTR) . . . . . . . . . . . . . . . . . 129
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
RCC APB2
外设复½寄存器
(RCC_APB2RSTR) . . . . . . . . . . . . . . . . 132
用于
STM32F42xxx
和
STM32F43xxx的
RCC APB2
外设复½寄存器
(RCC_APB2RSTR) . . . . . . . . . . . . . . . . . 133
RCC AHB1
外设时钟½½寄存器
(RCC_AHB1ENR) . . . . . . . . . . . . . . 135
RCC AHB2
外设时钟½½寄存器
(RCC_AHB2ENR) . . . . . . . . . . . . . . 137
RCC AHB3
外设时钟½½寄存器
(RCC_AHB3ENR) . . . . . . . . . . . . . . 138
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
RCC APB1
外设时钟½½寄存器
(RCC_APB1ENR) . . . . . . . . . . . . . . 139
用于
STM32F42xxx
和
STM32F43xxx
的
RCC APB1
外设时钟½½寄存器
(RCC_APB1ENR) . . . . . . . . . . . . . . 141
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的
RCC APB2
外设时钟½½寄存器
(RCC_APB2ENR) . . . . . . . . . . . . . . 144
用于
STM32F42xxx
和
STM32F43xxx的
RCC APB2
外设时钟½½寄存器
(RCC_APB2ENR) . . . . . . . . . . . . . . 146
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的½功耗模式
寄存器中的
RCC AHB1
外设时钟½½
(RCC_AHB1LPENR) . . . . . . . 148
用于
STM32F42xxx
和
STM32F43xxx的½功耗模式寄存器中的
RCC AHB1
外设时钟½½
(RCC_AHB1LPENR) . . . . . . . . . . . . . . . . . 151
用于½功耗模式寄存器中的
RCC AHB2
外设时钟½½
(RCC_AHB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
½功耗模式寄存器中的
RCC AHB3
外设时钟½½
(RCC_AHB3LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的½功耗模式
寄存器中的
RCC APB1
外设时钟½½
(RCC_APB1LPENR) . . . . . . . . 155
用于
STM32F42xxx
和
STM32F43xxx
的½功耗模式寄存器中的
RCC APB1
外设时钟½½
(RCC_APB1LPENR) . . . . . . . . . . . . . . . . . 158
用于
STM32F405xx/07xx
和
STM32F415xx/17xx
的½功耗模式
寄存器中的
RCC APB2
外设时钟½½
(RCC_APB2LPENR) . . . . . . . . 161
文档
ID 018909
第
4
版
5/1284
32
评论