在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → STM32F429开发指南.pdf

STM32F429开发指南.pdf

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:20.60M
  • 下载次数:28
  • 浏览次数:166
  • 发布时间:2021-06-01
  • 实例类别:嵌入式开发
  • 发 布 人:wandi123
  • 文件格式:.pdf
  • 所需积分:2

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

目录
1 文档约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.1 寄存器相关缩写词列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.2 词汇表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.3 外设可用性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2 存储器和总线架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1 系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.1.1 S0:I 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.2 S1:D 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.3 S2:S 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.4 S3、S4:DMA 存储器总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.5 S5:DMA 外设总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.6 S6:以太网 DMA 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.7 S7:USB OTG HS DMA 总线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.8 总线矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.9 AHB/APB 总线桥 (APB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2 存储器组织结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.1 嵌入式 SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.3.2 Flash 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.3.3 位段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4 自举配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3 嵌入式 Flash 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.3 嵌入式 Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4 读接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1 CPU 时钟频率与 Flash 读取时间之间的关系 . . . . . . . . . . . . . . . . . . . . . 60
3.4.2 自适应实时存储器加速器 (ART Accelerator™) . . . . . . . . . . . . . . . . . . . 62
3.5 擦除和编程操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5.1 Flash 控制寄存器解锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5.2 编程/擦除并行位数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
文档 ID 018909 第 4 版 3/1284
RM0090 目录
32
3.5.3 擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5.4 编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5.5 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6 选项字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.1 关于用户选项字节的说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.2 用户选项字节编程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.3 读保护 (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.6.4 写保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.7 一次性可编程字节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.8 Flash 接口寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.8.1 Flash 访问控制寄存器 (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.8.2 Flash 密钥寄存器 (FLASH_KEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.8.3 Flash 选项密钥寄存器 (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . . . . 74
3.8.4 Flash 状态寄存器 (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.8.5 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
Flash 控制寄存器 (FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.8.6 用于 STM32F42xxx 和 STM32F43xxx的
Flash 控制寄存器 (FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.8.7 Flash 选项控制寄存器 (FLASH_OPTCR) . . . . . . . . . . . . . . . . . . . . . . . 79
3.8.8 用于 STM32F42xxx 和 STM32F43xxx 的
Flash 选项控制寄存器 (FLASH_OPTCR1) . . . . . . . . . . . . . . . . . . . . . . 80
3.8.9 Flash 接口寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4 CRC 计算单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.1 CRC 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2 CRC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3 CRC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.4 CRC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4.1 数据寄存器 (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4.2 独立数据寄存器 (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4.3 控制寄存器 (CRC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.4.4 CRC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5 电源控制器 (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1 电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.1 独立 A/D 转换器电源和参考电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.2 电池备份域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.1.3 调压器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
目录 RM0090
4/1284 文档 ID 018909 第 4 版
5.2 电源监控器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.1 上电复位 (POR)/掉电复位 (PDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.2 欠压复位 (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.2.3 可编程电压检测器 (PVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3 低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.3.1 降低系统时钟速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.3.2 外设时钟门控 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.3.3 睡眠模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.3.4 停止模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3.5 待机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3.6 对 RTC 复用功能进行编程以从停止模式和待机模式唤醒器件 . . . . . . . . 98
5.4 电源控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4.1 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
PWR 电源控制寄存器 (PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4.2 用于STM32F42xxx 和 STM32F43xxx 的
PWR 电源控制寄存器 (PWR_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.4.3 PWR 电源控制/状态寄存器 (PWR_CSR) . . . . . . . . . . . . . . . . . . . . . . 103
5.5 PWR 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6 复位和时钟控制 (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1 复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1.1 系统复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1.2 电源复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1.3 备份域复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.2.1 HSE 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.2.2 HSI 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.2.3 PLL 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2.4 LSE 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2.5 LSI 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.6 系统时钟 (SYSCLK) 选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.7 时钟安全系统 (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.8 RTC/AWU 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.9 看门狗时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.10 时钟输出功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2.11 基于 TIM5/TIM11 的内部/外部时钟测量 . . . . . . . . . . . . . . . . . . . . . . . 113
文档 ID 018909 第 4 版 5/1284
RM0090 目录
32
6.3 RCC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.3.1 RCC 时钟控制寄存器 (RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.3.2 RCC PLL 配置寄存器 (RCC_PLLCFGR) . . . . . . . . . . . . . . . . . . . . . . . 116
6.3.3 RCC 时钟配置寄存器 (RCC_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.3.4 RCC 时钟中断寄存器 (RCC_CIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.3.5 RCC AHB1 外设复位寄存器 (RCC_AHB1RSTR) . . . . . . . . . . . . . . . . 123
6.3.6 RCC AHB2 外设复位寄存器 (RCC_AHB2RSTR) . . . . . . . . . . . . . . . . 125
6.3.7 RCC AHB3 外设复位寄存器 (RCC_AHB3RSTR) . . . . . . . . . . . . . . . . 125
6.3.8 用于 STM32F405xx/07xx 和 STM32F415xx/17xx的
RCC APB1 外设复位寄存器 (RCC_APB1RSTR) . . . . . . . . . . . . . . . . 126
6.3.9 用于 STM32F42xxx 和 STM32F43xxx 的
RCC APB1 外设复位寄存器(RCC_APB1RSTR) . . . . . . . . . . . . . . . . . 129
6.3.10 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
RCC APB2 外设复位寄存器 (RCC_APB2RSTR) . . . . . . . . . . . . . . . . 132
6.3.11 用于 STM32F42xxx 和 STM32F43xxx的
RCC APB2 外设复位寄存器(RCC_APB2RSTR) . . . . . . . . . . . . . . . . . 133
6.3.12 RCC AHB1 外设时钟使能寄存器 (RCC_AHB1ENR) . . . . . . . . . . . . . . 135
6.3.13 RCC AHB2 外设时钟使能寄存器 (RCC_AHB2ENR) . . . . . . . . . . . . . . 137
6.3.14 RCC AHB3 外设时钟使能寄存器 (RCC_AHB3ENR) . . . . . . . . . . . . . . 138
6.3.15 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
RCC APB1 外设时钟使能寄存器 (RCC_APB1ENR) . . . . . . . . . . . . . . 139
6.3.16 用于 STM32F42xxx 和 STM32F43xxx 的
RCC APB1 外设时钟使能寄存器 (RCC_APB1ENR) . . . . . . . . . . . . . . 141
6.3.17 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
RCC APB2 外设时钟使能寄存器 (RCC_APB2ENR) . . . . . . . . . . . . . . 144
6.3.18 用于 STM32F42xxx 和 STM32F43xxx的
RCC APB2 外设时钟使能寄存器 (RCC_APB2ENR) . . . . . . . . . . . . . . 146
6.3.19 用于 STM32F405xx/07xx 和 STM32F415xx/17xx的低功耗模式
寄存器中的 RCC AHB1 外设时钟使能 (RCC_AHB1LPENR) . . . . . . . 148
6.3.20 用于 STM32F42xxx 和 STM32F43xxx的低功耗模式寄存器中的
RCC AHB1 外设时钟使能 (RCC_AHB1LPENR) . . . . . . . . . . . . . . . . . 151
6.3.21 用于低功耗模式寄存器中的 RCC AHB2 外设时钟使能
(RCC_AHB2LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.3.22 低功耗模式寄存器中的 RCC AHB3 外设时钟使能
(RCC_AHB3LPENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.3.23 用于 STM32F405xx/07xx 和 STM32F415xx/17xx的低功耗模式
寄存器中的 RCC APB1 外设时钟使能 (RCC_APB1LPENR) . . . . . . . . 155
6.3.24 用于 STM32F42xxx 和 STM32F43xxx 的低功耗模式寄存器中的
RCC APB1 外设时钟使能 (RCC_APB1LPENR) . . . . . . . . . . . . . . . . . 158
6.3.25 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的低功耗模式
寄存器中的 RCC APB2 外设时钟使能 (RCC_APB2LPENR) . . . . . . . . 161
目录 RM0090
6/1284 文档 ID 018909 第 4 版
6.3.26 用于 STM32F42xxx 和 STM32F43xxx的低功耗模式寄存器中的
RCC APB2 外设时钟 (RCC_APB2LPENR) . . . . . . . . . . . . . . . . . . . . . 163
6.3.27 RCC 备份域控制寄存器 (RCC_BDCR) . . . . . . . . . . . . . . . . . . . . . . . . 165
6.3.28 RCC 时钟控制和状态寄存器 (RCC_CSR) . . . . . . . . . . . . . . . . . . . . . . 166
6.3.29 RCC 扩频时钟生成寄存器 (RCC_SSCGR) . . . . . . . . . . . . . . . . . . . . . 168
6.3.30 RCC PLLI2S 配置寄存器 (RCC_PLLI2SCFGR) . . . . . . . . . . . . . . . . . 169
6.3.31 RCC 专用时钟配置寄存器 (RCC_DCKCFGR) . . . . . . . . . . . . . . . . . . . 170
6.3.32 RCC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7 通用 I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.1 GPIO 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.2 GPIO 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3 GPIO 功能描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
7.3.1 通用 I/O (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3.2 I/O 引脚复用器和映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.3.3 I/O 端口控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.4 I/O 端口数据寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.5 I/O 数据位操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.6 GPIO 锁定机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3.7 I/O 复用功能输入/输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.3.8 外部中断线/唤醒线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.3.9 输入配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.3.10 输出配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.3.11 复用功能配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.3.12 模拟配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.3.13 将 OSC32_IN/OSC32_OUT 引脚用作 GPIO PC14/PC15 端口引脚 . . . . . 185
7.3.14 将 OSC_IN/OSC_OUT 引脚用作 GPIO PH0/PH1 端口引脚 . . . . . . . . 185
7.3.15 选择 RTC_AF1 和 RTC_AF2 复用功能 . . . . . . . . . . . . . . . . . . . . . . . . 185
7.4 GPIO 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.4.1 GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..I) . . . . . . . . . . . . . . . 187
7.4.2 GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..I) . . . . . . . . . . . 187
7.4.3 GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..I/) . . . . . . . . . 188
7.4.4 GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..I/) . . . . . . . . . . 188
7.4.5 GPIO 端口输入数据寄存器 (GPIOx_IDR) (x = A..I) . . . . . . . . . . . . . . . 189
7.4.6 GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A..I) . . . . . . . . . . . . . . 189
7.4.7 GPIO 端口置位/复位寄存器 (GPIOx_BSRR) (x = A..I) . . . . . . . . . . . . 190
7.4.8 GPIO 端口配置锁定寄存器 (GPIOx_LCKR) (x = A..I) . . . . . . . . . . . . . 190
文档 ID 018909 第 4 版 7/1284
RM0090 目录
32
7.4.9 GPIO 复用功能低位寄存器 (GPIOx_AFRL) (x = A..I) . . . . . . . . . . . . . 191
7.4.10 GPIO 复用功能高位寄存器 (GPIOx_AFRH) (x = A..I) . . . . . . . . . . . . . 192
7.4.11 GPIO 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8 系统配置控制器 (SYSCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.1 I/O 补偿单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.2 SYSCFG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.2.1 SYSCFG 存储器重映射寄存器 (SYSCFG_MEMRMP) . . . . . . . . . . . . 194
8.2.2 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
SYSCFG 外设模式配置寄存器 (SYSCFG_PMC) . . . . . . . . . . . . . . . . 195
8.2.3 用于 STM32F42xxx 和 STM32F43xxx 的 SYSCFG 外设模式配置
寄存器 (SYSCFG_PMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
8.2.4 SYSCFG 外部中断配置寄存器 1 (SYSCFG_EXTICR1) . . . . . . . . . . . 196
8.2.5 SYSCFG 外部中断配置寄存器 2 (SYSCFG_EXTICR2) . . . . . . . . . . . 196
8.2.6 SYSCFG 外部中断配置寄存器 3 (SYSCFG_EXTICR3) . . . . . . . . . . . 197
8.2.7 SYSCFG 外部中断配置寄存器 4 (SYSCFG_EXTICR4) . . . . . . . . . . . 198
8.2.8 补偿单元控制寄存器 (SYSCFG_CMPCR) . . . . . . . . . . . . . . . . . . . . . . 198
8.2.9 SYSCFG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
9 DMA 控制器 (DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.1 DMA 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.2 DMA 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.3 DMA 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.3.1 一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.3.2 DMA 事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.3.3 通道选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.3.4 仲裁器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.3.5 DMA 数据流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.3.6 源、目标和传输模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
9.3.7 指针递增 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.3.8 循环模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.3.9 双缓冲区模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.3.10 可编程数据宽度、封装/解封、字节序 . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.3.11 单次传输和突发传输 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.3.12 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.3.13 DMA 传输完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
9.3.14 DMA 传输暂停 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
目录 RM0090
8/1284 文档 ID 018909 第 4 版
9.3.15 流控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.3.16 可能的 DMA 配置汇总 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.3.17 流配置过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.3.18 错误管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
9.4 DMA 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.5 DMA 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.5.1 DMA 低中断状态寄存器 (DMA_LISR) . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.5.2 DMA 高中断状态寄存器 (DMA_HISR) . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.5.3 DMA 低中断标志清零寄存器 (DMA_LIFCR) . . . . . . . . . . . . . . . . . . . . 222
9.5.4 DMA 高中断标志清零寄存器 (DMA_HIFCR) . . . . . . . . . . . . . . . . . . . . 223
9.5.5 DMA 数据流 x 配置寄存器 (DMA_SxCR) (x = 0..7) . . . . . . . . . . . . . . . 223
9.5.6 DMA 数据流 x 数据项数寄存器 (DMA_SxNDTR) (x = 0..7) . . . . . . . . . 226
9.5.7 DMA 数据流 x 外设地址寄存器 (DMA_SxPAR) (x = 0..7) . . . . . . . . . . 227
9.5.8 DMA 数据流 x 存储器 0 地址寄存器 (DMA_SxM0AR) (x = 0..7) . . . . . 227
9.5.9 DMA 数据流 x 存储器 1 地址寄存器 (DMA_SxM1AR) (x = 0..7) . . . . . 228
9.5.10 DMA 数据流 x FIFO 控制寄存器 (DMA_SxFCR) (x = 0..7) . . . . . . . . . 228
9.5.11 DMA 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10 中断和事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.1 嵌套向量中断控制器 (NVIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.1.1 NVIC 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.1.2 SysTick 校准值寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.1.3 中断和异常向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.2 外部中断/事件控制器 (EXTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
10.2.1 EXTI 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
10.2.2 EXTI 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
10.2.3 唤醒事件管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
10.2.4 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
10.2.5 外部中断/事件线映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
10.3 EXTI 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
10.3.1 中断屏蔽寄存器 (EXTI_IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
10.3.2 事件屏蔽寄存器 (EXTI_EMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
10.3.3 上升沿触发选择寄存器 (EXTI_RTSR) . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.3.4 下降沿触发选择寄存器 (EXTI_FTSR) . . . . . . . . . . . . . . . . . . . . . . . . . 245
10.3.5 软件中断事件寄存器 (EXTI_SWIER) . . . . . . . . . . . . . . . . . . . . . . . . . . 246
10.3.6 挂起寄存器 (EXTI_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
10.3.7 EXTI 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
文档 ID 018909 第 4 版 9/1284
RM0090 目录
32
11 模数转换器 (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.1 ADC 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.2 ADC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3 ADC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.1 ADC 开关控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.3.2 ADC 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.3.3 通道选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
11.3.4 单次转换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.5 连续转换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.6 时序图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
11.3.7 模拟看门狗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
11.3.8 扫描模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
11.3.9 注入通道管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
11.3.10 不连续采样模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.4 数据对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.5 可独立设置各通道采样时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.6 外部触发转换和触发极性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
11.7 快速转换模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
11.8 数据管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
11.8.1 使用 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
11.8.2 在不使用 DMA 的情况下管理转换序列 . . . . . . . . . . . . . . . . . . . . . . . . 259
11.8.3 在不使用 DMA 和溢出检测的情况下进行转换 . . . . . . . . . . . . . . . . . . . 259
11.9 多重 ADC 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
11.9.1 注入同时模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
11.9.2 规则同时模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
11.9.3 交替模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
11.9.4 交替触发模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
11.9.5 混合型规则/注入同时模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
11.9.6 规则同时   交替触发组合模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
11.10 温度传感器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
11.11 电池充电监视 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.12 ADC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.13 ADC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.13.1 ADC 状态寄存器 (ADC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
11.13.2 ADC 控制寄存器 1 (ADC_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
目录 RM0090
10/1284 文档 ID 018909 第 4 版
11.13.3 ADC 控制寄存器 2 (ADC_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
11.13.4 ADC 采样时间寄存器 1 (ADC_SMPR1) . . . . . . . . . . . . . . . . . . . . . . . . 277
11.13.5 ADC 采样时间寄存器 2 (ADC_SMPR2) . . . . . . . . . . . . . . . . . . . . . . . . 277
11.13.6 ADC 注入通道数据偏移寄存器 X (ADC_JOFRx)(x=1..4) . . . . . . . . . . . 278
11.13.7 ADC 看门狗高阈值寄存器 (ADC_HTR) . . . . . . . . . . . . . . . . . . . . . . . . 278
11.13.8 ADC 看门狗低阈值寄存器 (ADC_LTR) . . . . . . . . . . . . . . . . . . . . . . . . 279
11.13.9 ADC 规则序列寄存器 1 (ADC_SQR1) . . . . . . . . . . . . . . . . . . . . . . . . . 279
11.13.10 ADC 规则序列寄存器 2 (ADC_SQR2) . . . . . . . . . . . . . . . . . . . . . . . . . 280
11.13.11 ADC 规则序列寄存器 3 (ADC_SQR3) . . . . . . . . . . . . . . . . . . . . . . . . . 280
11.13.12 ADC 注入序列寄存器 (ADC_JSQR) . . . . . . . . . . . . . . . . . . . . . . . . . . 281
11.13.13 ADC 注入数据寄存器 x (ADC_JDRx) (x= 1..4) . . . . . . . . . . . . . . . . . . 281
11.13.14 ADC 规则数据寄存器 (ADC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
11.13.15 ADC 通用状态寄存器 (ADC_CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
11.13.16 ADC 通用控制寄存器 (ADC_CCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
11.13.17 适用于双重和三重模式的 ADC 通用规则数据寄存器(ADC_CDR) . . . 285
11.13.18 ADC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
12 数模转换器 (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.1 DAC 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.2 DAC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.3 DAC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.3.1 DAC 通道使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.3.2 DAC 输出缓冲器使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.3.3 DAC 数据格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.3.4 DAC 转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
12.3.5 DAC 输出电压 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
12.3.6 DAC 触发选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
12.3.7 DMA 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
12.3.8 生成噪声 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
12.3.9 生成三角波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
12.4 DAC 双通道转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
12.4.1 独立触发(不产生波形) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.4.2 独立触发(生成单个 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.4.3 独立触发(生成不同 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.4.4 独立触发(生成单个三角波) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
12.4.5 独立触发(生成不同三角波) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.4.6 同步软件启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
文档 ID 018909 第 4 版 11/1284
RM0090 目录
32
12.4.7 同步触发(不产生波形) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.4.8 同步触发(生成单个 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
12.4.9 同步触发(生成不同 LFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
12.4.10 同步触发(生成单个三角波) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
12.4.11 同步触发(生成不同三角波) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.5 DAC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.5.1 DAC 控制寄存器 (DAC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.5.2 DAC 软件触发寄存器 (DAC_SWTRIGR) . . . . . . . . . . . . . . . . . . . . . . . 301
12.5.3 DAC 1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1) . . . . . . . . 301
12.5.4 DAC 1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1) . . . . . . . . 302
12.5.5 DAC 1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1) . . . . . . . . . . 302
12.5.6 DAC 2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2) . . . . . . . . 303
12.5.7 DAC 2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2) . . . . . . . . 303
12.5.8 DAC 2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2) . . . . . . . . . . 303
12.5.9 双 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD) . . . . . . . . . . . 304
12.5.10 双 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD) . . . . . . . . . . . 304
12.5.11 双 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD) . . . . . . . . . . . . . 305
12.5.12 DAC 1 通道数据输出寄存器 (DAC_DOR1) . . . . . . . . . . . . . . . . . . . . . 305
12.5.13 DAC 2 通道数据输出寄存器 (DAC_DOR2) . . . . . . . . . . . . . . . . . . . . . 305
12.5.14 DAC 状态寄存器 (DAC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
12.5.15 DAC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
13 数字摄像头接口 (DCMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.1 DCMI 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.2 DCMI 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.3 DCMI 引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.4 DCMI 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
13.5 DCMI 功能概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
13.5.1 DMA 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
13.5.2 DCMI 物理接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
13.5.3 同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
13.5.4 捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
13.5.5 裁剪功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
13.5.6 JPEG 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.5.7 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
目录 RM0090
12/1284 文档 ID 018909 第 4 版
13.6 数据格式说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.6.1 数据格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
13.6.2 单色格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
13.6.3 RGB 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
13.6.4 YCbCr 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
13.7 DCMI 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.8 DCMI 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.8.1 DCMI 控制寄存器 1 (DCMI_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.8.2 DCMI 状态寄存器 (DCMI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
13.8.3 DCMI 原始中断状态寄存器 (DCMI_SR) . . . . . . . . . . . . . . . . . . . . . . . . 321
13.8.4 DCMI 中断使能寄存器 (DCMI_IER) . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
13.8.5 DCMI 屏蔽中断状态寄存器 (DCMI_MIS) . . . . . . . . . . . . . . . . . . . . . . . 322
13.8.6 DCMI 中断清零寄存器 (DCMI_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
13.8.7 DCMI 内嵌同步码寄存器 (DCMI_ESCR) . . . . . . . . . . . . . . . . . . . . . . . 324
13.8.8 DCMI 内嵌码同步取消屏蔽寄存器 (DCMI_ESUR) . . . . . . . . . . . . . . . . 325
13.8.9 DCMI 裁剪窗口起点 (DCMI_CWSTRT) . . . . . . . . . . . . . . . . . . . . . . . . 325
13.8.10 DCMI 裁剪窗口大小 (DCMI_CWSIZE) . . . . . . . . . . . . . . . . . . . . . . . . 326
13.8.11 DCMI 数据寄存器 (DCMI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
13.8.12 DCMI 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
14 高级控制定时器(TIM1 和 TIM8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
14.1 TIM1 和 TIM8 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
14.2 TIM1 和 TIM8 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
14.3 TIM1 和 TIM8 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
14.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
14.3.2 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
14.3.3 重复计数器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
14.3.4 时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
14.3.5 捕获/比较通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
14.3.6 输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
14.3.7 PWM 输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
14.3.8 强制输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
14.3.9 输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
14.3.10 PWM 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
14.3.11 互补输出和死区插入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
14.3.12 使用断路功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
14.3.13 发生外部事件时清除 OCxREF 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
文档 ID 018909 第 4 版 13/1284
RM0090 目录
32
14.3.14 生成 6 步 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
14.3.15 单脉冲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
14.3.16 编码器接口模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
14.3.17 定时器输入异或功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
14.3.18 连接霍尔传感器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
14.3.19 TIMx 与外部触发同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
14.3.20 定时器同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
14.3.21 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
14.4 TIM1 和 TIM8 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
14.4.1 TIM1 和 TIM8 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . 366
14.4.2 TIM1 和 TIM8 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . 367
14.4.3 TIM1 和 TIM8 从模式控制寄存器 (TIMx_SMCR) . . . . . . . . . . . . . . . . . 368
14.4.4 TIM1 和 TIM8 DMA/中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . 371
14.4.5 TIM1 和 TIM8 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . 372
14.4.6 TIM1 和 TIM8 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . 374
14.4.7 TIM1 和 TIM8 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . . . 375
14.4.8 TIM1 和 TIM8 捕获/比较模式寄存器 2 (TIMx_CCMR2) . . . . . . . . . . . . 378
14.4.9 TIM1 和 TIM8 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . . 379
14.4.10 TIM1 和 TIM8 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.4.11 TIM1 和 TIM8 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . 383
14.4.12 TIM1 和 TIM8 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . 383
14.4.13 TIM1 和 TIM8 重复计数器寄存器 (TIMx_RCR) . . . . . . . . . . . . . . . . . . 384
14.4.14 TIM1 和 TIM8 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . 384
14.4.15 TIM1 和 TIM8 捕获/比较寄存器 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . 385
14.4.16 TIM1 和 TIM8 捕获/比较寄存器 3 (TIMx_CCR3) . . . . . . . . . . . . . . . . . 385
14.4.17 TIM1 和 TIM8 捕获/比较寄存器 4 (TIMx_CCR4) . . . . . . . . . . . . . . . . . 386
14.4.18 TIM1 和 TIM8 断路和死区寄存器 (TIMx_BDTR) . . . . . . . . . . . . . . . . . 386
14.4.19 TIM1 和 TIM8 DMA 控制寄存器 (TIMx_DCR) . . . . . . . . . . . . . . . . . . . 388
14.4.20 TIM1 和 TIM8 全传输 DMA 地址 (TIMx_DMAR) . . . . . . . . . . . . . . . . . 389
14.4.21 TIM1 和 TIM8 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
15 通用定时器(TIM2 到 TIM5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
15.1 TIM2 到 TIM5简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
15.2 TIM2 到 TIM5 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
15.3 TIM2 到 TIM5 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
15.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
15.3.2 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
目录 RM0090
14/1284 文档 ID 018909 第 4 版
15.3.3 时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
15.3.4 捕获/比较通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
15.3.5 输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
15.3.6 PWM 输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
15.3.7 强制输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.3.8 输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
15.3.9 PWM 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
15.3.10 单脉冲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3.11 发生外部事件时清除 OCxREF 信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
15.3.12 编码器接口模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
15.3.13 定时器输入异或功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
15.3.14 定时器与外部触发同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
15.3.15 定时器同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
15.3.16 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
15.4 TIM2 到 TIM5 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
15.4.1 TIMx 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
15.4.2 TIMx 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
15.4.3 TIMx 从模式控制寄存器 (TIMx_SMCR) . . . . . . . . . . . . . . . . . . . . . . . . 426
15.4.4 TIMx DMA/中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . . . . . . . . 428
15.4.5 TIMx 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
15.4.6 TIMx 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
15.4.7 TIMx 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . . . . . . . . . . 432
15.4.8 TIMx 捕获/比较模式寄存器 2 (TIMx_CCMR2) . . . . . . . . . . . . . . . . . . . 435
15.4.9 TIMx 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . . . . . . . . . 436
15.4.10 TIMx 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.4.11 TIMx 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.4.12 TIMx 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
15.4.13 TIMx 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . . . . . . . . 439
15.4.14 TIMx 捕获/比较寄存器 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . . . . . . . . 439
15.4.15 TIMx 捕获/比较寄存器 3 (TIMx_CCR3) . . . . . . . . . . . . . . . . . . . . . . . . 440
15.4.16 TIMx 捕获/比较寄存器 4 (TIMx_CCR4) . . . . . . . . . . . . . . . . . . . . . . . . 440
15.4.17 TIMx DMA 控制寄存器 (TIMx_DCR) . . . . . . . . . . . . . . . . . . . . . . . . . . 441
15.4.18 TIMx 全传输 DMA 地址 (TIMx_DMAR) . . . . . . . . . . . . . . . . . . . . . . . . 441
15.4.19 TIM2 选项寄存器 (TIM2_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
15.4.20 TIM5 选项寄存器 (TIM5_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
15.4.21 TIMx 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
文档 ID 018909 第 4 版 15/1284
RM0090 目录
32
16 通用定时器(TIM9 到 TIM14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
16.1 TIM9 到 TIM14 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
16.2 TIM9 到 TIM14 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
16.2.1 TIM9/TIM12 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
16.3 TIM10/TIM11 和 TIM13/TIM14 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . 446
16.4 TIM9 到 TIM14 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.4.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
16.4.2 计数器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
16.4.3 时钟选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
16.4.4 捕获/比较通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
16.4.5 输入捕获模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
16.4.6 PWM 输入模式(仅适用于 TIM9/12) . . . . . . . . . . . . . . . . . . . . . . . . . 455
16.4.7 强制输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
16.4.8 输出比较模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
16.4.9 PWM 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
16.4.10 单脉冲模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
16.4.11 TIM9/12 外部触发同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
16.4.12 定时器同步 (TIM9/12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
16.4.13 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
16.5 TIM9 和 TIM12 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
16.5.1 TIM9/12 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
16.5.2 TIM9/12 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
16.5.3 TIM9/12 从模式控制寄存器 (TIMx_SMCR) . . . . . . . . . . . . . . . . . . . . . 463
16.5.4 TIM9/12 中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . . . . . . . . . . 465
16.5.5 TIM9/12 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
16.5.6 TIM9/12 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . . . . . 466
16.5.7 TIM9/12 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . . . . . . . 467
16.5.8 TIM9/12 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . . . . . . . 470
16.5.9 TIM9/12 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
16.5.10 TIM9/12 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
16.5.11 TIM9/12 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . . . . . 471
16.5.12 TIM9/12 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . . . . . . . 472
16.5.13 TIM9/12 捕获/比较寄存器 2 (TIMx_CCR2) . . . . . . . . . . . . . . . . . . . . . 472
16.5.14 TIM9/12 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
目录 RM0090
16/1284 文档 ID 018909 第 4 版
16.6 TIM10/11/13/14 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
16.6.1 TIM10/11/13/14 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . 474
16.6.2 TIM10/11/13/14 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . 475
16.6.3 TIM10/11/13/14 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . 476
16.6.4 TIM10/11/13/14 捕获/比较模式寄存器 1 (TIMx_CCMR1) . . . . . . . . . . 476
16.6.5 TIM10/11/13/14 捕获/比较使能寄存器 (TIMx_CCER) . . . . . . . . . . . . . 478
16.6.6 TIM10/11/13/14 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . 479
16.6.7 TIM10/11/13/14 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . 480
16.6.8 TIM10/11/13/14 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . 480
16.6.9 TIM10/11/13/14 捕获/比较寄存器 1 (TIMx_CCR1) . . . . . . . . . . . . . . . 480
16.6.10 TIM11 选项寄存器 1 (TIM11_OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
16.6.11 TIM10/11/13/14 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
17 基本定时器(TIM6 和 TIM7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
17.1 TIM6 和 TIM7 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
17.2 TIM6 和 TIM7 的主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
17.3 TIM6 和 TIM7 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
17.3.1 时基单元 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
17.3.2 计数模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
17.3.3 时钟源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
17.3.4 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
17.4 TIM6 和 TIM7 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
17.4.1 TIM6 和 TIM7 控制寄存器 1 (TIMx_CR1) . . . . . . . . . . . . . . . . . . . . . . 489
17.4.2 TIM6 和 TIM7 控制寄存器 2 (TIMx_CR2) . . . . . . . . . . . . . . . . . . . . . . 490
17.4.3 TIM6 和 TIM7 DMA/中断使能寄存器 (TIMx_DIER) . . . . . . . . . . . . . . . 490
17.4.4 TIM6 和 TIM7 状态寄存器 (TIMx_SR) . . . . . . . . . . . . . . . . . . . . . . . . . 491
17.4.5 TIM6 和 TIM7 事件生成寄存器 (TIMx_EGR) . . . . . . . . . . . . . . . . . . . . 491
17.4.6 TIM6 和 TIM7 计数器 (TIMx_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
17.4.7 TIM6 和 TIM7 预分频器 (TIMx_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . 492
17.4.8 TIM6 和 TIM7 自动重载寄存器 (TIMx_ARR) . . . . . . . . . . . . . . . . . . . . 492
17.4.9 TIM6 和 TIM7 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
18 独立看门狗 (IWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
18.1 IWDG 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
18.2 IWDG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
文档 ID 018909 第 4 版 17/1284
RM0090 目录
32
18.3 IWDG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
18.3.1 硬件看门狗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
18.3.2 寄存器访问保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
18.3.3 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
18.4 IWDG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
18.4.1 关键字寄存器 (IWDG_KR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
18.4.2 预分频器寄存器 (IWDG_PR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
18.4.3 重载寄存器 (IWDG_RLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
18.4.4 状态寄存器 (IWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
18.4.5 IWDG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
19 窗口看门狗 (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
19.1 WWDG 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
19.2 WWDG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
19.3 WWDG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
19.4 如何设置看门狗超时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
19.5 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
19.6 WWDG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
19.6.1 控制寄存器 (WWDG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
19.6.2 配置寄存器 (WWDG_CFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
19.6.3 状态寄存器 (WWDG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
19.6.4 WWDG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
20 加密处理器 (CRYP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
20.1 CRYP 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
20.2 CRYP 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
20.3 CRYP 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
20.3.1 DES/TDES 加密内核 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
20.3.2 AES 加密内核 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
20.3.3 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
20.3.4 初始化向量 –– CRYP_IV0...1(L/R) . . . . . . . . . . . . . . . . . . . . . . . . . . 523
20.3.5 CRYP 忙碌状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
20.3.6 加密或解密执行步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
20.3.7 上下文交换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
20.4 CRYP 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
20.5 CRYP DMA 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
目录 RM0090
18/1284 文档 ID 018909 第 4 版
20.6 CRYP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.6.1 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
CRYP 控制寄存器 (CRYP_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
20.6.2 用于 STM32F42xxx 和 STM32F43xxx 的
CRYP 控制寄存器 (CRYP_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
20.6.3 CRYP 状态寄存器 (CRYP_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
20.6.4 CRYP 数据输入寄存器 (CRYP_DIN) . . . . . . . . . . . . . . . . . . . . . . . . . . 534
20.6.5 CRYP 数据输出寄存器 (CRYP_DOUT) . . . . . . . . . . . . . . . . . . . . . . . . 535
20.6.6 CRYP DMA 控制寄存器 (CRYP_DMACR) . . . . . . . . . . . . . . . . . . . . . . 536
20.6.7 CRYP 中断屏蔽置位/清零寄存器 (CRYP_IMSCR) . . . . . . . . . . . . . . . 536
20.6.8 CRYP 原始中断状态寄存器 (CRYP_RISR) . . . . . . . . . . . . . . . . . . . . . 537
20.6.9 CRYP 屏蔽中断状态寄存器 (CRYP_MISR) . . . . . . . . . . . . . . . . . . . . . 537
20.6.10 CRYP 密钥寄存器 (CRYP_K0...3(L/R)R) . . . . . . . . . . . . . . . . . . . . . . . 538
20.6.11 CRYP 初始化向量寄存器 (CRYP_IV0...1(L/R)R) . . . . . . . . . . . . . . . . . 540
20.6.12 用于 STM32F42xxx 和 STM32F43xxx的 CRYP上下文交换寄存器
(CRYP_CSGCMCCM0..7R 和 CRYP_CSGCM0..7R) . . . . . . . . . . 541
20.6.13 CRYP 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
21 随机数发生器 (RNG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
21.1 RNG 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
21.2 RNG 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
21.3 RNG 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
21.3.1 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
21.3.2 错误管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
21.4 RNG 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
21.4.1 RNG 控制寄存器 (RNG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
21.4.2 RNG 状态寄存器 (RNG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
21.4.3 RNG 数据寄存器 (RNG_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
21.4.4 RNG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
22 散列处理器 (HASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
22.1 散列简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
22.2 散列主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
22.3 散列功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
22.3.1 处理的持续时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
22.3.2 数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
22.3.3 消息摘要计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
22.3.4 消息填充 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
文档 ID 018909 第 4 版 19/1284
RM0090 目录
32
22.3.5 散列运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
22.3.6 HMAC 运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
22.3.7 上下文交换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
22.3.8 散列中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
22.4 散列寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
22.4.1 用于 STM32F405xx/07xx 和 STM32F415xx/17xx 的
散列控制寄存器 (HASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
22.4.2 用于 STM32F42xxx 和 STM32F43xxx 散列控制寄存器 (HASH_CR) . . . 561
22.4.3 散列数据输入寄存器 (HASH_DIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
22.4.4 散列启动寄存器 (HASH_STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
22.4.5 散列摘要寄存器(HASH_HR0 到 4/5/6/7) . . . . . . . . . . . . . . . . . . . . . 565
22.4.6 散列中断使能寄存器 (HASH_IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
22.4.7 散列状态寄存器 (HASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
22.4.8 散列上下文交换寄存器 (HASH_CSRx) . . . . . . . . . . . . . . . . . . . . . . . . 568
22.4.9 散列寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
23 实时时钟 (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
23.1 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
23.2 RTC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
23.3 RTC 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
23.3.1 时钟和预分频器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
23.3.2 实时时钟和日历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
23.3.3 可编程闹钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
23.3.4 周期性自动唤醒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
23.3.5 RTC 初始化和配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
23.3.6 读取日历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
23.3.7 复位 RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
23.3.8 RTC 同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
23.3.9 RTC 参考时钟检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
23.3.10 RTC 粗略数字校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
23.3.11 RTC 精密数字校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
23.3.12 时间戳功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
23.3.13 入侵检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
23.3.14 校准时钟输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
23.3.15 闹钟输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
23.4 RTC 和低功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
23.5 RTC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
目录 RM0090
20/1284 文档 ID 018909 第 4 版
23.6 RTC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
23.6.1 RTC 时间寄存器 (RTC_TR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
23.6.2 RTC 日期寄存器 (RTC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
23.6.3 RTC 控制寄存器 (RTC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
23.6.4 RTC 初始化和状态寄存器 (RTC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . 590
23.6.5 RTC 预分频器寄存器 (RTC_PRER) . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
23.6.6 RTC 唤醒定时器寄存器 (RTC_WUTR) . . . . . . . . . . . . . . . . . . . . . . . . 592
23.6.7 RTC 校准寄存器 (RTC_CALIBR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
23.6.8 RTC 闹钟 A 寄存器 (RTC_ALRMAR) . . . . . . . . . . . . . . . . . . . . . . . . . 594
23.6.9 RTC 闹钟 B 寄存器 (RTC_ALRMBR) . . . . . . . . . . . . . . . . . . . . . . . . . 595
23.6.10 RTC 写保护寄存器 (RTC_WPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
23.6.11 RTC 亚秒寄存器 (RTC_SSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
23.6.12 RTC 平移控制寄存器 (RTC_SHIFTR) . . . . . . . . . . . . . . . . . . . . . . . . . 597
23.6.13 RTC 时间戳时间寄存器 (RTC_TSTR) . . . . . . . . . . . . . . . . . . . . . . . . . 597
23.6.14 RTC 时间戳日期寄存器 (RTC_TSDR) . . . . . . . . . . . . . . . . . . . . . . . . . 598
23.6.15 RTC 时间戳亚秒寄存器 (RTC_TSSSR) . . . . . . . . . . . . . . . . . . . . . . . . 599
23.6.16 RTC 校准寄存器 (RTC_CALR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
23.6.17 RTC 入侵和复用功能配置寄存器 (RTC_TAFCR) . . . . . . . . . . . . . . . . . 600
23.6.18 RTC 闹钟 A 亚秒寄存器 (RTC_ALRMASSR) . . . . . . . . . . . . . . . . . . . 602
23.6.19 RTC 闹钟 B 亚秒寄存器 (RTC_ALRMASSR) . . . . . . . . . . . . . . . . . . . 603
23.6.20 RTC 备份寄存器 (RTC_BKPxR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
23.6.21 RTC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
24 控制器区域网络 (bxCAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
24.1 bxCAN 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
24.2 bxCAN 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
24.3 bxCAN 一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
24.3.1 CAN 2.0B 主动内核 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
24.3.2 控制、状态和配置寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
24.3.3 发送邮箱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
24.3.4 验收筛选器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
24.4 bxCAN 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
24.4.1 初始化模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
24.4.2 正常模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
24.4.3 睡眠模式(低功耗) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
文档 ID 018909 第 4 版 21/1284
RM0090 目录
32
24.5 测试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
24.5.1 静默模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
24.5.2 环回模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
24.5.3 环回与静默组合模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
24.6 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
24.7 bxCAN 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
24.7.1 发送处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
24.7.2 时间触发通信模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
24.7.3 接收处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
24.7.4 标识符筛选 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
24.7.5 消息存储 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
24.7.6 错误管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
24.7.7 位时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
24.8 bxCAN 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
24.9 CAN 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
24.9.1 寄存器访问保护 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
24.9.2 CAN 控制和状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
24.9.3 CAN 邮箱寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
24.9.4 CAN 筛选器寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
24.9.5 bxCAN 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
25 内部集成电路 (I2C) 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
25.1 I2C 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
25.2 I2C 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
25.3 I2C 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
25.3.1 模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
25.3.2 I2C 从模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
25.3.3 I2C 主模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
25.3.4 错误条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
25.3.5 可编程噪声滤波器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
25.3.6 SDA/SCL 线控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
25.3.7 SMBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
25.3.8 DMA 请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
25.3.9 数据包错误校验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
25.4 I2C 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
25.5 I2C 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
目录 RM0090
22/1284 文档 ID 018909 第 4 版
25.6 I2C 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
25.6.1 I2C 控制寄存器 1 (I2C_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
25.6.2 I2C 控制寄存器 2 (I2C_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
25.6.3 I2C 自有地址寄存器 1 (I2C_OAR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
25.6.4 I2C 自有地址寄存器 2 (I2C_OAR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
25.6.5 I2C 数据寄存器 (I2C_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
25.6.6 I2C 状态寄存器 1 (I2C_SR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
25.6.7 I2C 状态寄存器 2 (I2C_SR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
25.6.8 I2C 时钟控制寄存器 (I2C_CCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
25.6.9 I2C TRISE 寄存器 (I2C_TRISE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
25.6.10 I2C FLTR 寄存器 (I2C_FLTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
25.6.11 I2C 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
26 通用同步异步收发器 (USART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
26.1 USART 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
26.2 USART 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
26.3 USART 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
26.3.1 USART 字符说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
26.3.2 发送器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
26.3.3 接收器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
26.3.4 小数波特率生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
26.3.5 USART 接收器对时钟偏差的容差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
26.3.6 多处理器通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
26.3.7 奇偶校验控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
26.3.8 LIN(局域互连网络)模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
26.3.9 USART 同步模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
26.3.10 单线半双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
26.3.11 智能卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
26.3.12 IrDA SIR ENDEC 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
26.3.13 使用 DMA 进行连续通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
26.3.14 硬件流控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
26.4 USART 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
26.5 USART 模式配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
26.6 USART 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
26.6.1 状态寄存器 (USART_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
26.6.2 数据寄存器 (USART_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
文档 ID 018909 第 4 版 23/1284
RM0090 目录
32
26.6.3 波特率寄存器 (USART_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
26.6.4 控制寄存器 1 (USART_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
26.6.5 控制寄存器 2 (USART_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
26.6.6 控制寄存器 3 (USART_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
26.6.7 保护时间和预分频器寄存器 (USART_GTPR) . . . . . . . . . . . . . . . . . . . 719
26.6.8 USART 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
27 串行外设接口 (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
27.1 SPI 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
27.2 SPI 和 I2S 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
27.2.1 SPI 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
27.2.2 I2S 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
27.3 SPI 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
27.3.1 一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
27.3.2 把 SPI 配置成从器件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
27.3.3 把 SPI 配置成主器件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
27.3.4 配置 SPI 进行半双工通信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
27.3.5 数据发送和接收过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
27.3.6 CRC 计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
27.3.7 状态标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
27.3.8 关闭 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
27.3.9 使用 DMA(直接存储器寻址)进行 SPI 通信 . . . . . . . . . . . . . . . . . . . 741
27.3.10 错误标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
27.3.11 SPI 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
27.4 I2S 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
27.4.1 I2S 一般说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
27.4.2 I2S 全双工 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
27.4.3 支持的音频协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
27.4.4 时钟发生器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
27.4.5 I2S 主模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
27.4.6 I2S 从模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
27.4.7 状态标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
27.4.8 错误标志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
27.4.9 I2S 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
27.4.10 DMA 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
目录 RM0090
24/1284 文档 ID 018909 第 4 版
27.5 SPI 和 I2S 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
27.5.1 SPI 控制寄存器 1 (SPI_CR1)(不用于 I2S 模式) . . . . . . . . . . . . . . . 761
27.5.2 SPI 控制寄存器 2 (SPI_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
27.5.3 SPI 状态寄存器 (SPI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
27.5.4 SPI 数据寄存器 (SPI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
27.5.5 SPI CRC 多项式寄存器 (SPI_CRCPR)(不用于 I2S 模式) . . . . . . . . 765
27.5.6 SPI RX CRC 寄存器 (SPI_RXCRCR)(不用于 I2S 模式) . . . . . . . . . 766
27.5.7 SPI TX CRC 寄存器 (SPI_TXCRCR)(不用于 I2S 模式) . . . . . . . . . 766
27.5.8 SPI_I2S 配置寄存器 (SPI_I2SCFGR) . . . . . . . . . . . . . . . . . . . . . . . . . 767
27.5.9 SPI_I2S 预分频器寄存器 (SPI_I2SPR) . . . . . . . . . . . . . . . . . . . . . . . . 768
27.5.10 SPI 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
28 安全数字输入/输出接口 (SDIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
28.1 SDIO 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
28.2 SDIO 总线拓扑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
28.3 SDIO 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
28.3.1 SDIO 适配器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
28.3.2 SDIO APB2 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
28.4 卡功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
28.4.1 卡识别模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
28.4.2 智能卡复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
28.4.3 工作电压范围验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
28.4.4 卡识别过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
28.4.5 块写入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
28.4.6 块读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
28.4.7 流访问、流写入和流读取(仅限多媒体卡) . . . . . . . . . . . . . . . . . . . . 786
28.4.8 擦除:组擦除和扇区擦除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
28.4.9 宽总线选择或取消选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
28.4.10 保护管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
28.4.11 卡状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
28.4.12 SD 状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
28.4.13 SD I/O 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
28.4.14 命令和响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
文档 ID 018909 第 4 版 25/1284
RM0090 目录
32
28.5 响应格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
28.5.1 R1(正常响应命令) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
28.5.2 R1b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
28.5.3 R2(CID 和 CSD 寄存器) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
28.5.4 R3(OCR 寄存器) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
28.5.5 R4(快速 I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
28.5.6 R4b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
28.5.7 R5(中断请求) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
28.5.8 R6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
28.6 SDIO I/O 卡专用操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
28.6.1 通过触发 SDIO_D2 执行的 SDIO I/O 读取等待操作 . . . . . . . . . . . . . . 803
28.6.2 通过停止 SDIO_CK 执行的 SDIO 读取等待操作 . . . . . . . . . . . . . . . . . 804
28.6.3 SDIO 挂起/恢复操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
28.6.4 SDIO 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
28.7 CE-ATA 专用操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
28.7.1 命令完成信号禁止 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
28.7.2 命令完成信号使能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
28.7.3 CE-ATA 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
28.7.4 中止 CMD61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
28.8 硬件流控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
28.9 SDIO 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
28.9.1 SDIO 电源控制寄存器 (SDIO_POWER) . . . . . . . . . . . . . . . . . . . . . . . 805
28.9.2 SDI 时钟控制寄存器 (SDIO_CLKCR) . . . . . . . . . . . . . . . . . . . . . . . . . 806
28.9.3 SDIO 参数寄存器 (SDIO_ARG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
28.9.4 SDIO 命令寄存器 (SDIO_CMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
28.9.5 SDIO 命令响应寄存器 (SDIO_RESPCMD) . . . . . . . . . . . . . . . . . . . . . 808
28.9.6 SDIO 响应 1..4 寄存器 (SDIO_RESPx) . . . . . . . . . . . . . . . . . . . . . . . . 809
28.9.7 SDIO 数据定时器寄存器 (SDIO_DTIMER) . . . . . . . . . . . . . . . . . . . . . 809
28.9.8 SDIO 数据长度寄存器 (SDIO_DLEN) . . . . . . . . . . . . . . . . . . . . . . . . . 810
28.9.9 SDIO 数据控制寄存器 (SDIO_DCTRL) . . . . . . . . . . . . . . . . . . . . . . . . 810
28.9.10 SDIO 数据计数器寄存器 (SDIO_DCOUNT) . . . . . . . . . . . . . . . . . . . . . 812
28.9.11 SDIO 状态寄存器 (SDIO_STA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
28.9.12 SDIO 中断清零寄存器 (SDIO_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
28.9.13 SDIO 屏蔽寄存器 (SDIO_MASK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
28.9.14 SDIO FIFO 计数器寄存器 (SDIO_FIFOCNT) . . . . . . . . . . . . . . . . . . . 818
28.9.15 SDIO 数据 FIFO 寄存器 (SDIO_FIFO) . . . . . . . . . . . . . . . . . . . . . . . . 818
28.9.16 SDIO 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
目录 RM0090
26/1284 文档 ID 018909 第 4 版
29 以太网 (ETH):通过 DMA 控制器进行介质访问控制 (MAC) . . . . . . . . . . 820
29.1 以太网简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
29.2 以太网主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
29.2.1 MAC 内核特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
29.2.2 DMA 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
29.2.3 PTP 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
29.3 以太网引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
29.4 以太网功能说明:SMI、MII 和 RMII . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
29.4.1 站管理接口:SMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
29.4.2 介质独立接口:MII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
29.4.3 精简介质独立接口:RMII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
29.4.4 MII/RMII 选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
29.5 以太网功能说明:MAC 802.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
29.5.1 MAC 802.3 帧格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
29.5.2 MAC 帧发送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
29.5.3 MAC 帧接收 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
29.5.4 MAC 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
29.5.5 MAC 过滤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
29.5.6 MAC 回送模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
29.5.7 MAC 管理计数器:MMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
29.5.8 电源管理:PMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
29.5.9 精密时间协议 (IEEE1588 PTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
29.6 以太网功能说明:DMA 控制器操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
29.6.1 使用 DMA 进行传送的初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
29.6.2 主机总线突发访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
29.6.3 主机数据缓冲区对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
29.6.4 缓冲区大小计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
29.6.5 DMA 仲裁器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
29.6.6 对 DMA 的错误响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
29.6.7 Tx DMA 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
29.6.8 Rx DMA 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
29.6.9 DMA 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
29.7 以太网中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
29.8 以太网寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
29.8.1 MAC 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
29.8.2 MMC 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
文档 ID 018909 第 4 版 27/1284
RM0090 目录
32
29.8.3 IEEE 1588 时间戳寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
29.8.4 DMA 寄存器说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
29.8.5 以太网寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
30 全速 USB on-the-go (OTG_FS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
30.1 OTG_FS 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
30.2 OTG_FS 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
30.2.1 通用特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
30.2.2 主机模式特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
30.2.3 从机模式特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
30.3 OTG_FS 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
30.3.1 OTG 全速模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
30.3.2 全速 OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
30.4 OTG 双角色设备 (DRD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
30.4.1 ID 线检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
30.4.2 HNP 双角色设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
30.4.3 SRP 双角色设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
30.5 USB 设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
30.5.1 支持 SRP 功能的设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
30.5.2 设备状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
30.5.3 设备端点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
30.6 USB 主机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
30.6.1 支持 SRP 功能的主机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
30.6.2 USB 主机状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
30.6.3 主机通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
30.6.4 主机调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
30.7 SOF 触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
30.7.1 主机 SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
30.7.2 设备 SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
30.8 电源选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
30.9 动态更新 OTG_FS_HFIR 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
30.10 USB 数据 FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
30.11 设备 FIFO 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
30.11.1 设备 Rx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
30.11.2 设备 Tx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
目录 RM0090
28/1284 文档 ID 018909 第 4 版
30.12 主机 FIFO 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
30.12.1 主机 Rx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
30.12.2 主机 Tx FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
30.13 FIFO RAM 分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
30.13.1 设备模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
30.13.2 主机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
30.14 USB 系统性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
30.15 OTG_FS 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
30.16 OTG_FS 控制和状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
30.16.1 CSR 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
30.16.2 OTG_FS 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
30.16.3 主机模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
30.16.4 设备模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
30.16.5 OTG_FS 电源和时钟门控控制寄存器 (OTG_FS_PCGCCTL) . . . . . . 1005
30.16.6 OTG_FS 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
30.17 OTG_FS 编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
30.17.1 模块初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
30.17.2 主机初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
30.17.3 设备初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
30.17.4 主机编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
30.17.5 设备编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
30.17.6 操作模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032
30.17.7 最坏情况下的响应时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
30.17.8 OTG 编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
31 高速 USB on-the-go (OTG_HS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
31.1 OTG_HS 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
31.2 OTG_HS 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
31.2.1 通用特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
31.2.2 主机模式特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
31.2.3 从机模式特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
31.3 OTG_HS 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
31.3.1 高速 OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
31.3.2 使用 I2C 接口的外部全速 OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . 1056
31.3.3 嵌入式全速 OTG PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
文档 ID 018909 第 4 版 29/1284
RM0090 目录
32
31.4 OTG 双角色设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
31.4.1 ID 线检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
31.4.2 HNP 双角色设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
31.4.3 SRP 双角色设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
31.5 设备模式下的 USB 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
31.5.1 支持 SRP 功能的 USB 设备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
31.5.2 USB 设备状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
31.5.3 USB 设备端点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
31.6 主机模式下的 USB 功能说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
31.6.1 支持 SRP 功能的 USB 主机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
31.6.2 USB 主机状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
31.6.3 主机通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
31.6.4 主机调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
31.7 SOF 触发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
31.7.1 主机 SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
31.7.2 设备 SOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
31.8 USB_HS 功耗模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
31.9 动态更新 OTG_HS_HFIR 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
31.10 FIFO RAM 分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
31.10.1 设备模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
31.10.2 主机模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
31.11 OTG_HS 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
31.12 OTG_HS 控制和状态寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
31.12.1 CSR 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
31.12.2 OTG_HS 全局寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
31.12.3 主机模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
31.12.4 设备模式寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
31.12.5 OTG_HS 电源和时钟门控控制寄存器 (OTG_HS_PCGCCTL) . . . . . . 1130
31.12.6 OTG_HS 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
31.13 OTG_HS 编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
31.13.1 模块初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
31.13.2 主机初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
31.13.3 设备初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
31.13.4 DMA 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
31.13.5 主机编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
31.13.6 设备编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
目录 RM0090
30/1284 文档 ID 018909 第 4 版
31.13.7 操作模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
31.13.8 最坏情况下的响应时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184
31.13.9 OTG 编程模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
32 灵活的静态存储控制器 (FSMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
32.1 FSMC 主要特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
32.2 框图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192
32.3 AHB 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
32.3.1 支持的存储器和事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
32.4 外部器件地址映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
32.4.1 NOR/PSRAM 地址映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
32.4.2 NAND/PC 卡地址映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
32.5 NOR Flash/PSRAM 控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196
32.5.1 外部存储器接口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197
32.5.2 支持的存储器和事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
32.5.3 通用时序规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
32.5.4 NOR Flash/PSRAM 控制器异步事务 . . . . . . . . . . . . . . . . . . . . . . . . . 1200
32.5.5 同步突发事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
32.5.6 NOR/PSRAM 控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
32.6 NAND Flash/PC 卡控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228
32.6.1 外部存储器接口信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228
32.6.2 NAND Flash/PC 卡支持的存储器和事务 . . . . . . . . . . . . . . . . . . . . . . 1230
32.6.3 NAND 和 PC 卡的时序图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230
32.6.4 NAND Flash 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
32.6.5 NAND Flash 预等待功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1232
32.6.6 错误修正代码计算 ECC (NAND Flash) . . . . . . . . . . . . . . . . . . . . . . . 1233
32.6.7 PC 卡/CF 卡操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233
32.6.8 NAND Flash/PC 卡控制寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235
32.6.9 FSMC 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
33 调试支持 (DBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
33.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
33.2 ARM 参考文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
33.3 SWJ 调试端口(串行接口和 JTAG) . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
33.3.1 JTAG-DP 或 SW-DP 的切换机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245
文档 ID 018909 第 4 版 31/1284
RM0090 目录
32
33.4 引脚排列和调试端口引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245
33.4.1 SWJ 调试端口引脚 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246
33.4.2 灵活的 SWJ-DP 引脚分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246
33.4.3 JTAG 引脚上的内部上拉和下拉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247
33.4.4 使用串行接口以及释放未使用的调试引脚以用作 GPIO . . . . . . . . . . . 1247
33.5 STM32F4xx JTAG TAP 连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
33.6 ID 代码和锁定机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
33.6.1 MCU 器件 ID 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
33.6.2 边界扫描 TAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249
33.6.3 Cortex™-M4F TAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249
33.6.4 Cortex™-M4F JEDEC-106 ID 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . 1249
33.7 JTAG 调试端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
33.8 SW 调试端口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
33.8.1 SW 协议简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
33.8.2 SW 协议序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
33.8.3 SW-DP 状态机(复位、空闲状态、ID 代码) . . . . . . . . . . . . . . . . . . 1252
33.8.4 DP 和 AP 读/写访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253
33.8.5 SW-DP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253
33.8.6 SW-AP 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254
33.9 AHB-AP(AHB 访问端口)––对 JTAG-DP 和 SW-DP 同时有效 . . . 1254
33.10 内核调试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255
33.11 调试主机在系统复位状态下建立连接的功能 . . . . . . . . . . . . . . . . . . . . . 1255
33.12 FPB (Flash patch breakpoint) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
33.13 DWT(数据观察点触发) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
33.14 ITM(指令跟踪宏单元) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
33.14.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
33.14.2 时间戳数据包、同步和溢出数据包 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257
33.15 ETM(嵌入式跟踪宏单元) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
33.15.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
33.15.2 信号协议和数据包类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
33.15.3 主要的 ETM 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
33.15.4 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
33.16 MCU 调试组件 (DBGMCU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
33.16.1 对低功耗模式的调试支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
33.16.2 对定时器、看门狗、bxCAN 和 I2C 的调试支持 . . . . . . . . . . . . . . . . . 1259
33.16.3 MCU 调试配置寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260
33.16.4 MCU APB1 调试冻结寄存器 (DBGMCU_APB1_FZ) . . . . . . . . . . . . . 1261
33.16.5 MCU APB2 调试冻结寄存器 (DBGMCU_APB2_FZ) . . . . . . . . . . . . . 1263
目录 RM0090
32/1284 文档 ID 018909 第 4 版
33.17 TPIU(跟踪端口接口单元) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263
33.17.1 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263
33.17.2 TRACE 引脚分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
33.17.3 TPUI 格式化器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
33.17.4 TPUI 帧同步数据包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
33.17.5 发送同步帧数据包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
33.17.6 同步模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
33.17.7 异步模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
33.17.8 STM32F4xx 内的 TRACECLKIN 连接 . . . . . . . . . . . . . . . . . . . . . . . . 1267
33.17.9 TPIU 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
33.17.10 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
33.18 DBG 寄存器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269
34 设备电子签名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
34.1 唯一设备 ID 寄存器(96 位) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
34.2 Flash 大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271
版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276

实例下载地址

STM32F429开发指南.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警