1 文档约定
1.1 寄存器相关缩写词列表
1.2 词汇表
1.3 外设可用性
1.4 产品类别定义
2 系统和存储器概述
2.1 系统架构
2.1.1 S0:Cortex® 总线
2.1.2 S1:DMA 总线
2.1.3 总线矩阵
2.2 存储器组织结构
2.2.1 简介
2.2.2 存储器映射和寄存器边界地址
2.3 嵌入式 SRAM
2.4 自举配置
3 Flash 程序存储器和数据 EEPROM (FLASH)
3.1 简介
3.2 NVM 主要特性
3.3 NVM 功能说明
3.3.1 NVM 的构成
3.3.2 双存储区自举功能
3.3.3 读取 NVM
3.3.4 写入/擦除 NVM
3.4 存储器保护
3.4.1 RDP(读保护)
3.4.2 PcROP(专有代码读取保护)
3.4.3 防止意外的写入/擦除操作
3.4.4 写入/擦除保护管理
3.4.5 保护错误
3.5 NVM 中断
3.5.1 硬性故障
3.6 存储器接口管理
3.6.1 操作优先级和流程
3.6.2 操作序列
3.6.3 执行读取操作时更改等待周期数
3.6.4 掉电
3.7 Flash 寄存器说明
3.7.1 访问控制寄存器 (FLASH_ACR)
3.7.2 编程和擦除控制寄存器 (FLASH_PECR)
3.7.3 掉电密钥寄存器 (FLASH_PDKEYR)
3.7.4 PECR 解锁密钥寄存器 (FLASH_PEKEYR)
3.7.5 编程和擦除密钥寄存器 (FLASH_PRGKEYR)
3.7.6 选项字节解锁密钥寄存器 (FLASH_OPTKEYR)
3.7.7 状态寄存器 (FLASH_SR)
3.7.8 选项字节寄存器 (FLASH_OPTR)
3.7.9 写保护寄存器 1 (FLASH_WRPROT1)
3.7.10 写保护寄存器 2 (FLASH_WRPROT2)
3.7.11 Flash 寄存器映射
3.8 选项字节
3.8.1 选项字节说明
3.8.2 加载保护标志时发生不匹配
3.8.3 通过软件重载选项字节
4 循环冗余校验计算单元(CRC)
4.1 简介
4.2 CRC 主要特性
4.3 CRC 功能说明
4.4 CRC 寄存器
4.4.1 数据寄存器 (CRC_DR)
4.4.2 独立数据寄存器 (CRC_IDR)
4.4.3 控制寄存器 (CRC_CR)
4.4.4 CRC 初始值 (CRC_INIT)
4.4.5 CRC 多项式 (CRC_POL)
4.4.6 CRC 寄存器映射
5 防火墙 (FW)
5.1 前言
5.2 防火墙主要特性
5.3 防火墙功能说明
5.3.1 防火墙 AMBA 总线监听
5.3.2 功能要求
5.3.3 防火墙段
5.3.4 段访问方式及其属性
5.3.5 防火墙初始化
5.3.6 防火墙状态
5.4 防火墙寄存器
5.4.1 代码段起始地址寄存器 (FW_CSSA)
5.4.2 代码段长度寄存器 (FW_CSL)
5.4.3 非易失性数据段起始地址寄存器 (FW_NVDSSA)
5.4.4 非易失性数据段长度寄存器 (FW_NVDSL)
5.4.5 易失性数据段起始地址寄存器 (FW_VDSSA)
5.4.6 易失性数据段长度寄存器 (FW_VDSL)
5.4.7 配置寄存器 (FW_CR)
5.4.8 防火墙寄存器映射
6 电源控制 (PWR)
6.1 电源
6.1.1 独立 A/D 和 DAC 转换器电源和参考电压
6.1.2 独立 LCD 供电
6.1.3 RTC 和 RTC 备份寄存器
6.1.4 调压器
6.1.5 动态电压调节管理
6.1.6 动态电压调节配置
6.1.7 当 VDD 降至 1.71 V 以下时的调压器和时钟管理
6.1.8 修改 VCORE 范围时的调压器和时钟管理
6.1.9 当 VDD 介于 1.71 V 到 2.0 V 之间时的电压范围和限制
6.2 电源监控器
6.2.1 上电复位 (POR)/掉电复位 (PDR)
6.2.2 欠压复位 (BOR)
6.2.3 可编程电压检测器 (PVD)
6.2.4 内部参考电压 (VREFINT)
6.3 低功耗模式
6.3.1 低功耗模式下时钟的行为
6.3.2 降低系统时钟速度
6.3.3 外设时钟门控
6.3.4 低功耗运行模式(LP 运行)
6.3.5 进入低功耗模式
6.3.6 退出低功耗模式
6.3.7 睡眠模式
6.3.8 低功耗睡眠模式(LP 睡眠)
6.3.9 停止模式
6.3.10 待机模式
6.3.11 使用 RTC 和比较器从停止和待机模式唤醒器件
6.4 电源控制寄存器
6.4.1 PWR 电源控制寄存器 (PWR_CR)
6.4.2 PWR 电源控制/状态寄存器 (PWR_CSR)
6.4.3 PWR 寄存器映射
7 复位和时钟控制 (RCC)
7.1 复位
7.1.1 系统复位
7.1.2 电源复位
7.1.3 RTC 和备份寄存器复位
7.2 时钟
7.2.1 HSE 时钟
7.2.2 HSI16 时钟
7.2.3 MSI 时钟
7.2.4 HSI48 时钟
7.2.5 PLL
7.2.6 LSE 时钟
7.2.7 LSI 时钟
7.2.8 系统时钟 (SYSCLK) 选择
7.2.9 系统时钟源频率与电压范围
7.2.10 HSE 时钟安全系统(CSS)
7.2.11 LSE 时钟安全系统
7.2.12 RTC 和 LCD 时钟
7.2.13 看门狗时钟
7.2.14 时钟输出功能
7.2.15 基于 TIM21 的内部/外部时钟测量
7.2.16 TIM2/TIM21/TIM22 独立于系统时钟的时钟源
7.3 RCC 寄存器
7.3.1 时钟控制寄存器 (RCC_CR)
7.3.2 内部时钟源校准寄存器 (RCC_ICSCR)
7.3.3 时钟恢复 RC 寄存器 (RCC_CRRCR)
7.3.4 时钟配置寄存器 (RCC_CFGR)
7.3.5 时钟中断使能寄存器 (RCC_CIER)
7.3.6 时钟中断标志寄存器 (RCC_CIFR)
7.3.7 时钟中断清零寄存器 (RCC_CICR)
7.3.8 GPIO 复位寄存器 (RCC_IOPRSTR)
7.3.9 AHB 外设复位寄存器 (RCC_AHBRSTR)
7.3.10 APB2 外设复位寄存器 (RCC_APB2RSTR)
7.3.11 APB1 外设复位寄存器 (RCC_APB1RSTR)
7.3.12 GPIO 时钟使能寄存器 (RCC_IOPENR)
7.3.13 AHB 外设时钟使能寄存器 (RCC_AHBENR)
7.3.14 APB2 外设时钟使能寄存器 (RCC_APB2ENR)
7.3.15 APB1 外设时钟使能寄存器 (RCC_APB1ENR)
7.3.16 睡眠模式下的 GPIO 时钟使能寄存器 (RCC_IOPSMENR)
7.3.17 睡眠模式下的 AHB 外设时钟使能寄存器 (RCC_AHBSMENR)
7.3.18 睡眠模式下的 APB2 外设时钟使能寄存器 (RCC_APB2SMENR)
7.3.19 睡眠模式下的 APB1 外设时钟使能寄存器 (RCC_APB1SMENR)
7.3.20 时钟配置寄存器 (RCC_CCIPR)
7.3.21 控制/状态寄存器 (RCC_CSR)
7.3.22 RCC 寄存器映射
8 时钟恢复系统 (CRS)
8.1 前言
8.2 CRS 主要特性
8.3 CRS 功能说明
8.3.1 CRS 框图
8.3.2 同步输入
8.3.3 频率误差测量
8.3.4 频率误差评估和自动微调
8.3.5 CRS 初始化和配置
8.4 CRS 低功耗模式
8.5 CRS 中断
8.6 CRS 寄存器
8.6.1 CRS 控制寄存器 (CRS_CR)
8.6.2 CRS 配置寄存器 (CRS_CFGR)
8.6.3 CRS 中断和状态寄存器 (CRS_ISR)
8.6.4 CRS 中断标志清零寄存器 (CRS_ICR)
8.6.5 CRS 寄存器映射
9 通用 I/O (GPIO)
9.1 简介
9.2 GPIO 主要特性
9.3 GPIO 功能描述
9.3.1 通用 I/O (GPIO)
9.3.2 I/O 引脚复用功能复用器和映射
9.3.3 I/O 端口控制寄存器
9.3.4 I/O 端口数据寄存器
9.3.5 I/O 数据位操作
9.3.6 GPIO 锁定机制
9.3.7 I/O 复用功能输入/输出
9.3.8 外部中断线/唤醒线
9.3.9 输入配置
9.3.10 输出配置
9.3.11 复用功能配置
9.3.12 模拟配置
9.3.13 将 HSE 或 LSE 振荡器引脚用作 GPIO
9.3.14 在 RTC 电源域中使用 GPIO 引脚
9.4 GPIO 寄存器
9.4.1 GPIO 端口模式寄存器 (GPIOx_MODER)(x =A..E 和 H)
9.4.2 GPIO 端口输出类型寄存器 (GPIOx_OTYPER)(x = A..E 和 H)
9.4.3 GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR)(x = A..E 和 H)
9.4.4 GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR)(x = A..E 和 H)
9.4.5 GPIO 端口输入寄存器 (GPIOx_OTYPER)(x = A..E 和 H)
9.4.6 GPIO 端口输出数据寄存器 (GPIOx_ODR)(x = A..E 和 H)
9.4.7 GPIO 端口置位/复位寄存器 (GPIOx_BSRR)(x = A..E 和 H)
9.4.8 GPIO 端口配置锁定寄存器 (GPIOx_LCKR)(x = A..E 和 H)
9.4.9 GPIO 复用功能低位寄存器 (GPIOx_AFRL)(x = A..E 和 H)
9.4.10 GPIO 复用功能高位寄存器 (GPIOx_AFRH)(x = A..E 和 H)
9.4.11 GPIO 端口位复位寄存器 (GPIOx_BRR)(x =A..E 和 H)
9.4.12 GPIO 寄存器映射
10 系统配置控制器 (SYSCFG)
10.1 前言
10.2 SYSCFG 寄存器
10.2.1 SYSCFG 存储器重映射寄存器 (SYSCFG_CFGR1)
10.2.2 SYSCFG 外设模式配置寄存器 (SYSCFG_CFGR2)
10.2.3 参考控制和状态寄存器 (SYSCFG_CFGR3)
10.2.4 SYSCFG 外部中断配置寄存器 1 (SYSCFG_EXTICR1)
10.2.5 SYSCFG 外部中断配置寄存器 2 (SYSCFG_EXTICR2)
10.2.6 SYSCFG 外部中断配置寄存器 3 (SYSCFG_EXTICR3)
10.2.7 SYSCFG 外部中断配置寄存器 4 (SYSCFG_EXTICR4)
10.2.8 SYSCFG 寄存器映射
11 直接存储器访问控制器 (DMA)
11.1 前言
11.2 DMA 主要特性
11.3 DMA 功能说明
11.3.1 DMA 事务
11.3.2 仲裁器
11.3.3 DMA 通道
11.3.4 可编程数据宽度、数据对齐和字节存储次序
11.3.5 错误管理
11.3.6 DMA 中断
11.3.7 DMA 请求映射
11.4 DMA 寄存器
11.4.1 DMA 中断状态寄存器 (DMA_ISR)
11.4.2 DMA 中断标志清零寄存器 (DMA_IFCR)
11.4.3 DMA 通道 x 配置寄存器 (DMA_CCRx)(x = 1..7 ,其中 x 表示通道编号)
11.4.4 DMA 通道 x 数据数寄存器 (DMA_CNDTRx) (x = 1..7,其中 x 表示通道编号)
11.4.5 DMA 通道 x 外设地址寄存器 (DMA_CPARx) (x = 1..7,其中 x 表示通道编号)
11.4.6 DMA 通道 x 存储器地址寄存器 (DMA_CMARx) (x = 1..7,其中 x 表示通道编号)
11.4.7 DMA 通道选择寄存器 (DMA_CSELR)
11.4.8 DMA 寄存器映射
12 嵌套向量中断控制器 (NVIC)
12.1 主要特性
12.2 SysTick 校准值寄存器
12.3 中断和异常向量
13 扩展中断和事件控制器 (EXTI)
13.1 前言
13.2 EXTI 主要特性
13.3 EXTI 功能说明
13.3.1 EXTI 框图
13.3.2 唤醒事件管理
13.3.3 外设异步中断
13.3.4 硬件中断选择
13.3.5 硬件事件选择
13.3.6 软件中断/事件选择
13.4 EXTI 中断/事件线映射
13.5 EXTI 寄存器
13.5.1 EXTI 中断屏蔽寄存器 (EXTI_IMR)
13.5.2 EXTI 事件屏蔽寄存器 (EXTI_EMR)
13.5.3 EXTI 上升沿触发选择寄存器 (EXTI_RTSR)
13.5.4 下降沿触发选择寄存器 (EXTI_FTSR)
13.5.5 EXTI 软件中断事件寄存器 (EXTI_SWIER)
13.5.6 EXTI 挂起寄存器 (EXTI_PR)
13.5.7 EXTI 寄存器映射
14 模数转换器(ADC)
14.1 简介
14.2 ADC 主要特性
14.3 ADC 引脚和内部信号
14.4 ADC 功能说明
14.4.1 ADC 调压器 (ADVREGEN)
14.4.2 校准 (ADCAL)
14.4.3 ADC 开关控制(ADEN、ADDIS、ADRDY)
14.4.4 ADC 时钟(CKMODE、PRESC[3:0]、LFMEN)
14.4.5 配置 ADC
14.4.6 通道选择(CHSEL、SCANDIR)
14.4.7 可编程采样时间 (SMP)
14.4.8 单次转换模式 (CONT=0)
14.4.9 连续转换模式 (CONT=1)
14.4.10 开始转换 (ADSTART)
14.4.11 时序
14.4.12 停止正在进行的转换 (ADSTP)
14.5 外部触发转换和触发极性(EXTSEL,EXTEN)
14.5.1 不连续模式 (DISCEN)
14.5.2 可编程分辨率 (RES) - 快速转换模式
14.5.3 转换结束、采样阶段结束(EOC、EOSMP 标志)
14.5.4 转换序列结束(EOSEQ 标志)
14.5.5 时序图示例(单次/连续模式硬件/软件触发)
14.6 数据管理
14.6.1 数据寄存器和数据对齐(ADC_DR、ALIGN)
14.6.2 ADC 溢出(OVR、OVRMOD)
14.6.3 在不使用 DMA 的情况下管理转换的数据序列
14.6.4 在不使用 DMA 且不发生溢出的情况下管理转换的数据
14.6.5 使用 DMA 管理转换的数据
14.7 低功耗特性
14.7.1 等待模式转换
14.7.2 自动关闭模式 (AUTOFF)
14.8 模拟窗口看门狗(AWDEN、AWDSGL、AWDCH、 AWD_HTR/LTR、AWD)
14.9 过采样器
14.9.1 过采样时支持的 ADC 工作模式
14.9.2 模拟看门狗
14.9.3 触发模式
14.10 温度传感器和内部参考电压
14.11 VLCD 电压监控
14.12 ADC 中断
14.13 ADC 寄存器
14.13.1 ADC 中断和状态寄存器 (ADC_ISR)
14.13.2 ADC 中断使能寄存器 (ADC_IER)
14.13.3 ADC 控制寄存器 (ADC_CR)
14.13.4 ADC 配置寄存器 1 (ADC_CFGR1)
14.13.5 ADC 配置寄存器 2 (ADC_CFGR2)
14.13.6 ADC 采样时间寄存器 (ADC_SMPR)
14.13.7 ADC 看门狗阈值寄存器 (ADC_TR)
14.13.8 ADC 通道选择寄存器 (ADC_CHSELR)
14.13.9 ADC 数据寄存器 (ADC_DR)
14.13.10 ADC 校准系数 (ADC_CALFACT)
14.13.11 ADC 通用配置寄存器 (ADC_CCR)
14.13.12 ADC 寄存器映射
15 数模转换器 (DAC)
15.1 前言
15.2 DAC1 主要特性
15.3 DAC 输出缓冲器使能
15.4 DAC 通道使能
15.5 单模式功能说明
15.5.1 DAC 数据格式
15.5.2 DAC 通道转换
15.5.3 DAC 输出电压
15.5.4 DAC 触发选择
15.6 双模式功能说明
15.6.1 DAC 数据格式
15.6.2 双模式下的 DAC 通道转换
15.6.3 双转换模式说明
15.6.4 DAC 输出电压
15.6.5 DAC 触发选择
15.7 生成噪声
15.8 生成三角波
15.9 DMA 请求
15.10 DAC 寄存器
15.10.1 DAC 控制寄存器 (DAC_CR)
15.10.2 DAC 软件触发寄存器 (DAC_SWTRIGR)
15.10.3 DAC 1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1)
15.10.4 DAC 1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1)
15.10.5 DAC 1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1)
15.10.6 DAC 2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2)
15.10.7 DAC 2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2)
15.10.8 DAC 2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2)
15.10.9 双 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD)
15.10.10 双 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD)
15.10.11 双 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD)
15.10.12 DAC 1 通道 数据输出寄存器 (DAC_DOR1)
15.10.13 DAC 2 通道数据输出寄存器 (DAC_DOR2)
15.10.14 DAC 状态寄存器 (DAC_SR)
15.10.15 DAC 寄存器映射
16 比较器 (COMP)
16.1 前言
16.2 COMP 主要特性
16.3 COMP 功能说明
16.3.1 COMP 框图
16.3.2 COMP 引脚和内部信号
16.3.3 COMP 复位和时钟
16.3.4 比较器锁定机制
16.3.5 功率模式
16.4 COMP 中断
16.5 COMP 寄存器
16.5.1 比较器 1 控制和状态寄存器 (COMP1_CSR)
16.5.2 比较器 2 控制和状态寄存器 (COMP2_CSR)
16.5.3 COMP 寄存器映射
17 液晶显示控制器 (LCD)
17.1 简介
17.2 LCD 主要特性
17.3 LCD 实现
17.4 LCD 功能说明
17.4.1 概述
17.4.2 频率发生器
17.4.3 公用驱动器
17.4.4 区段驱动器
17.4.5 电压发生器和对比度控制
17.4.6 双缓冲存储器
17.4.7 COM 和 SEG 多路复用
17.4.8 流程图
17.5 LCD 低功耗模式
17.6 LCD 中断
17.7 LCD 寄存器
17.7.1 LCD 控制寄存器 (LCD_CR)
17.7.2 LCD 帧控制寄存器 (LCD_FCR)
17.7.3 LCD 状态寄存器 (LCD_SR)
17.7.4 LCD 清零寄存器 (LCD_CLR)
17.7.5 LCD 显示器存储器 (LCD_RAM)
17.7.6 LCD 寄存器映射
18 触摸感应控制器(TSC)
18.1 前言
18.2 TSC 主要特性
18.3 TSC 功能说明
18.3.1 TSC 框图
18.3.2 表面电荷转移采集概述
18.3.3 复位和时钟
18.3.4 电荷转移采集序列
18.3.5 扩频功能
18.3.6 最大计数错误
18.3.7 采样电容 I/O 和通道 I/O 模式选择
18.3.8 采集模式
18.3.9 I/O 滞后和模拟开关控制
18.4 TSC 低功耗模式
18.5 TSC 中断
18.6 TSC 寄存器
18.6.1 TSC 控制寄存器 (TSC_CR)
18.6.2 TSC 中断使能寄存器 (TSC_IER)
18.6.3 TSC 中断清零寄存器 (TSC_ICR)
18.6.4 TSC 中断状态寄存器 (TSC_ISR)
18.6.5 TSC I/O 滞后控制寄存器 (TSC_IOHCR)
18.6.6 TSC I/O 模拟开关控制寄存器 (TSC_IOASCR)
18.6.7 TSC I/O 采样控制寄存器 (TSC_IOSCR)
18.6.8 TSC I/O 通道控制寄存器 (TSC_IOCCRTSC_IOCCR)
18.6.9 TSC I/O 组控制状态寄存器 (TSC_IOGCSR)
18.6.10 TSC I/O 组 x 计数器寄存器 (TSC_IOGxCR) (x = 1..8)
18.6.11 TSC 寄存器映射
19 高级加密标准硬件加速器 (AES)
19.1 前言
19.2 AES 主要特性
19.3 AES 功能说明
19.4 加密和生成密钥
19.5 AES 链接算法
19.5.1 电子密码本 (ECB)
19.5.2 密码块链接 (CBC)
19.5.3 计数器模式 (CTR)
19.6 数据类型
19.7 工作模式
19.7.1 模式 1:加密
19.7.2 模式 2:密钥生成
19.7.3 模式 3:解密
19.7.4 模式 4:密钥生成和解密
19.8 AES DMA 接口
19.9 错误标志
19.10 处理时间
19.11 AES 中断
19.12 AES 寄存器
19.12.1 AES 控制寄存器 (AES_CR)
19.12.2 AES 状态寄存器 (AES_SR)
19.12.3 AES 数据输入寄存器 (AES_DINR)
19.12.4 AES 数据输出寄存器 (AES_DOUTR)
19.12.5 AES 密钥寄存器 0 (AES_KEYR0) (LSB: key [31:0])
19.12.6 AES 密钥寄存器 1 (AES_KEYR1) (Key[63:32])
19.12.7 AES 密钥寄存器 2 (AES_KEYR2) (Key [95:64])
19.12.8 AES 密钥寄存器 3 (AES_KEYR3) (MSB: key[127:96])
19.12.9 AES 初始化向量寄存器 0 (AES_IVR0)(LSB:IVR[31:0])
19.12.10 AES 初始化向量寄存器 1 (AES_IVR1) (IVR[63:32])
19.12.11 AES 初始化向量寄存器 2 (AES_IVR2) (IVR[95:64])
19.12.12 AES 初始化向量寄存器 3 (AES_IVR3) (MSB: IVR[127:96])
19.12.13 AES 寄存器映射
20 随机数发生器 (RNG)
20.1 简介
20.2 RNG 主要特性
20.3 RNG 功能说明
20.3.1 操作
20.3.2 错误管理
20.4 RNG 寄存器
20.4.1 RNG 控制寄存器 (RNG_CR)
20.4.2 RNG 状态寄存器 (RNG_SR)
20.4.3 RNG 数据寄存器 (RNG_DR)
20.4.4 RNG 寄存器映射
21 通用定时器 (TIM2/TIM3)
21.1 TIM2/TIM3 简介
21.2 TIM2/TIM3 主要特性
21.3 TIM2/TIM3 功能说明
21.3.1 时基单元
21.3.2 计数器模式
21.3.3 时钟选择
21.3.4 捕获/比较通道
21.3.5 输入捕获模式
21.3.6 PWM 输入模式
21.3.7 强制输出模式
21.3.8 输出比较模式
21.3.9 PWM 模式
21.3.10 单脉冲模式
21.3.11 发生外部事件时清除 OCxREF 信号
21.3.12 编码器接口模式
21.3.13 定时器输入异或功能
21.3.14 定时器与外部触发同步
21.3.15 定时器同步
21.3.16 调试模式
21.4 TIM2/TIM3 寄存器
21.4.1 TIMx 控制寄存器 1 (TIMx_CR1)
21.4.2 TIMx 控制寄存器 2 (TIMx_CR2)
21.4.3 TIMx 从模式控制寄存器 (TIMx_SMCR)
21.4.4 TIMx DMA/中断使能寄存器 (TIMx_DIER)
21.4.5 TIMx 状态寄存器 (TIMx_SR)
21.4.6 TIMx 事件生成寄存器 (TIMx_EGR)
21.4.7 TIMx 捕获/比较模式寄存器 1 (TIMx_CCMR1)
21.4.8 TIMx 捕获/比较模式寄存器 2 (TIMx_CCMR2)
21.4.9 TIMx 捕获/比较使能寄存器 (TIMx_CCER)
21.4.10 TIMx 计数器 (TIMx_CNT)
21.4.11 TIMx 预分频器 (TIMx_PSC)
21.4.12 TIMx 自动重载寄存器 (TIMx_ARR)
21.4.13 TIMx 捕获/比较寄存器 1 (TIMx_CCR1)
21.4.14 TIMx 捕获/比较寄存器 2 (TIMx_CCR2)
21.4.15 TIMx 捕获/比较寄存器 3 (TIMx_CCR3)
21.4.16 TIMx 捕获/比较寄存器 4 (TIMx_CCR4)
21.4.17 TIMx DMA 控制寄存器 (TIMx_DCR)
21.4.18 TIMx 全传输 DMA 地址 (TIMx_DMAR)
21.4.19 TIM2 选项寄存器 (TIM2_OR)
21.4.20 TIM3 选项寄存器 (TIM3_OR)
21.5 TIMx 寄存器映射
22 通用定时器 (TIM21/22)
22.1 简介
22.2 TIM21/22 主要特性
22.2.1 TIM21/22 主要特性
22.3 TIM21/22 功能说明
22.3.1 时基单元
22.3.2 计数器模式
22.3.3 时钟选择
22.3.4 捕获/比较通道
22.3.5 输入捕获模式
22.3.6 PWM 输入模式
22.3.7 强制输出模式
22.3.8 输出比较模式
22.3.9 PWM 模式
22.3.10 发生外部事件时清除 OCxREF 信号
22.3.11 单脉冲模式
22.3.12 编码器接口模式
22.3.13 TIM21/22 外部触发同步
22.3.14 定时器同步 (TIM21/22)
22.3.15 调试模式
22.4 TIM21/22 寄存器
22.4.1 TIM21/22 控制寄存器 1 (TIMx_CR1)
22.4.2 TIM21/22 控制寄存器 2 (TIMx_CR2)
22.4.3 TIM21/22 从模式控制寄存器 (TIMx_SMCR)
22.4.4 TIM21/22 中断使能寄存器 (TIMx_DIER)
22.4.5 TIM21/22 状态寄存器 (TIMx_SR)
22.4.6 TIM21/22 事件生成寄存器 (TIMx_EGR)
22.4.7 TIM21/22 捕获/比较模式寄存器 1 (TIMx_CCMR1)
22.4.8 TIM21/22 捕获/比较使能寄存器 (TIMx_CCER)
22.4.9 TIM21/22 计数器 (TIMx_CNT)
22.4.10 TIM21/22 预分频器 (TIMx_PSC)
22.4.11 TIM21/22 自动重载寄存器 (TIMx_ARR)
22.4.12 TIM21/22 捕获/比较寄存器 1 (TIMx_CCR1)
22.4.13 TIM21/22 捕获/比较寄存器 2 (TIMx_CCR2)
22.4.14 TIM21 选项寄存器 (TIM21_OR)
22.4.15 TIM22 选项寄存器 (TIM22_OR)
22.4.16 TIM21/22 寄存器映射
23 基本定时器 (TIM6/7)
23.1 前言
23.2 TIM6/7 主要特性
23.3 TIM6/7 功能说明
23.3.1 时基单元
23.3.2 计数模式
23.3.3 时钟源
23.3.4 调试模式
23.4 TIM6/7 寄存器
23.4.1 TIM6/7 控制寄存器 1 (TIMx_CR1)
23.4.2 TIM6/7 控制寄存器 2 (TIMx_CR2)
23.4.3 TIM6/7 DMA/中断使能寄存器 (TIMx_DIER)
23.4.4 TIM6/7 状态寄存器 (TIMx_SR)
23.4.5 TIM6/7 事件产生寄存器 (TIMx_EGR)
23.4.6 TIM6/7 计数器 (TIMx_CNT)
23.4.7 TIM6/7 预分频器 (TIMx_PSC)
23.4.8 TIM6/7 自动重载寄存器 (TIMx_ARR)
23.4.9 TIM6/7 寄存器映射
24 低功耗定时器 (LPTIM)
24.1 简介
24.2 LPTIM 主要特性
24.3 LPTIM 实现
24.4 LPTIM 功能说明
24.4.1 LPTIM 框图
24.4.2 LPTIM 复位和时钟
24.4.3 干扰滤波器
24.4.4 预分频器
24.4.5 触发多路复用器
24.4.6 工作模式
24.4.7 超时功能
24.4.8 生成波形
24.4.9 寄存器更新
24.4.10 计数器模式
24.4.11 定时器使能
24.4.12 编码器模式
24.5 LPTIM 中断
24.6 LPTIM 寄存器
24.6.1 LPTIM 中断和状态寄存器 (LPTIMx_ISR)
24.6.2 LPTIM 中断清零寄存器 (LPTIMx_ICR)
24.6.3 LPTIM 中断使能寄存器 (LPTIMx_IER)
24.6.4 LPTIM 配置寄存器 (LPTIMx_CFGR)
24.6.5 LPTIM 控制寄存器 (LPTIMx_CR)
24.6.6 LPTIM 比较寄存器 (LPTIMx_CMP)
24.6.7 LPTIM 自动重载寄存器 (LPTIMx_ARR)
24.6.8 LPTIM 计数器寄存器 (LPTIMx_CNT)
24.6.9 LPTIM 寄存器映射
25 独立看门狗 (IWDG)
25.1 前言
25.2 IWDG 主要特性
25.3 IWDG 功能说明
25.3.1 IWDG 框图
25.3.2 窗口选项
25.3.3 硬件看门狗
25.3.4 停止和待机模式下的行为
25.3.5 寄存器访问保护
25.3.6 调试模式
25.4 IWDG 寄存器
25.4.1 键寄存器 (IWDG_KR)
25.4.2 预分频器寄存器 (IWDG_PR)
25.4.3 重载寄存器 (IWDG_RLR)
25.4.4 状态寄存器 (IWDG_SR)
25.4.5 窗口寄存器 (IWDG_WINR)
25.4.6 IWDG 寄存器映射
26 系统窗口看门狗 (WWDG)
26.1 前言
26.2 WWDG 主要特性
26.3 WWDG 功能说明
26.3.1 使能看门狗
26.3.2 控制递减计数器
26.3.3 看门狗中断高级特性
26.3.4 如何设置看门狗超时
26.3.5 调试模式
26.4 WWDG 寄存器
26.4.1 控制寄存器 (WWDG_CR)
26.4.2 配置寄存器 (WWDG_CFR)
26.4.3 状态寄存器 (WWDG_SR)
26.4.4 WWDG 寄存器映射
27 实时时钟 (RTC)
27.1 简介
27.2 RTC 主要特性
27.3 RTC 功能说明
27.3.1 RTC 框图
27.3.2 RTC 控制的 GPIO
27.3.3 时钟和预分频器
27.3.4 实时时钟和日历
27.3.5 可编程闹钟
27.3.6 周期性自动唤醒
27.3.7 RTC 初始化和配置
27.3.8 读取日历
27.3.9 复位 RTC
27.3.10 RTC 同步
27.3.11 RTC 参考时钟检测
27.3.12 RTC 精密数字校准
27.3.13 时间戳功能
27.3.14 入侵检测
27.3.15 校准时钟输出
27.3.16 闹钟输出
27.4 RTC 低功耗模式
27.5 RTC 中断
27.6 RTC 寄存器
27.6.1 RTC 时间寄存器 (RTC_TR)
27.6.2 RTC 日期寄存器 (RTC_DR)
27.6.3 RTC 控制寄存器 (RTC_CR)
27.6.4 RTC 初始化和状态寄存器 (RTC_ISR)
27.6.5 RTC 预分频器寄存器 (RTC_PRER)
27.6.6 RTC 唤醒定时器寄存器 (RTC_WUTR)
27.6.7 RTC 闹钟 A 寄存器 (RTC_ALRMAR)
27.6.8 RTC 闹钟 B 寄存器 (RTC_ALRMBR)
27.6.9 RTC 写保护寄存器 (RTC_WPR)
27.6.10 RTC 亚秒寄存器 (RTC_SSR)
27.6.11 RTC 平移控制寄存器 (RTC_SHIFTR)
27.6.12 RTC 时间戳时间寄存器 (RTC_TSTR)
27.6.13 RTC 时间戳日期寄存器 (RTC_TSDR)
27.6.14 RTC 时间戳亚秒寄存器 (RTC_TSSSR)
27.6.15 RTC 校准寄存器 (RTC_CALR)
27.6.16 RTC 入侵配置寄存器 (RTC_TAMPCR)
27.6.17 RTC 闹钟 A 亚秒寄存器 (RTC_ALRMASSR)
27.6.18 RTC 闹钟 B 亚秒寄存器 (RTC_ALRMBSSR)
27.6.19 RTC 选项寄存器 (RTC_OR)
27.6.20 RTC 备份寄存器 (RTC_BKPxR)
27.6.21 RTC 寄存器映射
28 内部集成电路 (I2C) 接口
28.1 简介
28.2 I2C 主要特性
28.3 I2C 特性实现
28.4 I2C 功能说明
28.4.1 I2C1/3 框图
28.4.2 I2C2 框图
28.4.3 I2C 时钟要求
28.4.4 模式选择
28.4.5 I2C 初始化
28.4.6 软件复位
28.4.7 数据传输
28.4.8 I2C 从模式
28.4.9 I2C 主模式
28.4.10 I2C_TIMINGR 寄存器配置示例
28.4.11 SMBus 特性
28.4.12 SMBus 初始化
28.4.13 SMBus:I2C_TIMEOUTR 寄存器配置示例
28.4.14 SMBus 从模式
28.4.15 地址匹配时从停止模式唤醒
28.4.16 错误条件
28.4.17 DMA 请求
28.4.18 调试模式
28.5 I2C 低功耗模式
28.6 I2C 中断
28.7 I2C 寄存器
28.7.1 控制寄存器 1 (I2C_CR1)
28.7.2 控制寄存器 2 (I2C_CR2)
28.7.3 设备自身地址 1 寄存器 (I2C_OAR1)
28.7.4 设备自身地址 2 寄存器 (I2C_OAR2)
28.7.5 时序寄存器 (I2C_TIMINGR)
28.7.6 超时寄存器 (I2C_TIMEOUTR)
28.7.7 中断和状态寄存器 (I2C_ISR)
28.7.8 中断清零寄存器 (I2C_ICR)
28.7.9 PEC 寄存器 (I2C_PECR)
28.7.10 接收数据寄存器 (I2C_RXDR)
28.7.11 发送数据寄存器 (I2C_TXDR)
28.7.12 I2C寄存器映射
29 通用同步异步收发器 (USART)
29.1 前言
29.2 USART 主要特性
29.3 USART 扩展特性
29.4 USART 实现
29.5 USART 功能说明
29.5.1 USART 字符说明
29.5.2 USART 发送器
29.5.3 USART 接收器
29.5.4 USART 波特率生成
29.5.5 USART 接收器对时钟偏差的容差
29.5.6 USART 自动波特率检测
29.5.7 使用 USART 进行多处理器通信
29.5.8 使用 USART 进行 Modbus 通信
29.5.9 USART 极性控制
29.5.10 USART LIN(局域互连网络)模式
29.5.11 USART 同步模式
29.5.12 USART 单线半双工通信
29.5.13 USART 智能卡模式
29.5.14 USART IrDA SIR ENDEC 模块
29.5.15 DMA 模式下的 USART 连续通信
29.5.16 RS232 硬件流控制和 RS485 驱动器使能(使用 USART)
29.5.17 使用 USART 从停止模式唤醒
29.6 USART 低功耗模式
29.7 USART 中断
29.8 USART 寄存器
29.8.1 控制寄存器 1 (USARTx_CR1)
29.8.2 控制寄存器 2 (USARTx_CR2)
29.8.3 控制寄存器 3 (USARTx_CR3)
29.8.4 波特率寄存器 (USARTx_BRR)
29.8.5 保护时间和预分频器寄存器 (USARTx_GTPR)
29.8.6 接收器超时寄存器 (USARTx_RTOR)
29.8.7 请求寄存器 (USARTx_RQR)
29.8.8 中断和状态寄存器 (USARTx_ISR)
29.8.9 中断标志清零寄存器 (USARTx_ICR)
29.8.10 接收数据寄存器 (USARTx_RDR)
29.8.11 发送数据寄存器 (USARTx_TDR)
29.8.12 USART 寄存器映射
30 低功耗通用异步接收器 (LPUART)
30.1 前言
30.2 LPUART 主要特性
30.3 LPUART 特性实现
30.4 LPUART 功能说明
30.4.1 LPUART 字符说明
30.4.2 LPUART 发送器
30.4.3 LPUART 接收器
30.4.4 LPUART 波特率生成
30.4.5 LPUART 接收器对时钟偏差的容差
30.4.6 使用 LPUART 进行多处理器通信
30.4.7 LPUART 极性控制
30.4.8 使用 LPUART 单线半双工通信
30.4.9 使用 LPUART 在 DMA 模式下进行连续通信
30.4.10 RS232 硬件流控制和 RS485 驱动器使能(使用 LPUART)
30.4.11 使用 LPUART 从停止模式唤醒
30.5 LPUART 低功耗模式
30.6 LPUART 中断
30.7 LPUART 寄存器
30.7.1 控制寄存器 1 (LPUART_CR1)
30.7.2 控制寄存器 2 (LPUART_CR2)
30.7.3 控制寄存器 3 (LPUART_CR3)
30.7.4 波特率寄存器 (LPUART_BRR)
30.7.5 请求寄存器 (LPUART_RQR)
30.7.6 中断和状态寄存器 (LPUART_ISR)
30.7.7 中断标志清零寄存器 (LPUART_ICR)
30.7.8 接收数据寄存器 (LPUART_RDR)
30.7.9 发送数据寄存器 (LPUART_TDR)
30.7.10 LPUART 寄存器映射
31 串行外设接口/集成电路内置音频总线 (SPI/I2S)
31.1 前言
31.1.1 SPI 主要特性
31.1.2 SPI 扩展特性
31.1.3 I2S 功能
31.2 SPI/I2S 实现
31.3 SPI 功能说明
31.3.1 概述
31.3.2 一个主器件和一个从器件之间的通信
31.3.3 标准多从器件通信
31.3.4 多主器件通信
31.3.5 从器件选择 (NSS) 引脚管理
31.3.6 通信格式
31.3.7 SPI配置
31.3.8 使能 SPI 的步骤
31.3.9 数据发送和接收过程
31.3.10 禁止 SPI 的步骤
31.3.11 使用 DMA(直接存储器寻址)进行通信
31.3.12 SPI 状态标志
31.3.13 SPI 错误标志
31.4 SPI 特性
31.4.1 TI 模式
31.4.2 CRC 计算
31.5 SPI 中断
31.6 I2S 功能说明
31.6.1 I2S 一般说明
31.6.2 支持的音频协议
31.6.3 时钟发生器
31.6.4 I2S 主模式
31.6.5 I2S 从模式
31.6.6 I2S 状态标志
31.6.7 I2S 错误标志
31.6.8 I2S 中断
31.6.9 DMA 特性
31.7 SPI 和 I2S 寄存器
31.7.1 SPI 控制寄存器 1 (SPI_CR1)(不用于 I2S 模式)
31.7.2 SPI 控制寄存器 2 (SPI_CR2)
31.7.3 SPI 状态寄存器 (SPI_SR)
31.7.4 SPI 数据寄存器 (SPI_DR)
31.7.5 SPI CRC 多项式寄存器 (SPI_CRCPR)(不用于 I2S 模式)
31.7.6 SPI RX CRC 寄存器 (SPI_RXCRCR)(不用于 I2S 模式)
31.7.7 SPI TX CRC 寄存器 (SPI_TXCRCR)(不用于 I2S 模式)
31.7.8 SPI_I2S 配置寄存器 (SPI_I2SCFGR)
31.7.9 SPI_I2S 预分频器寄存器 (SPI_I2SPR)
31.7.10 SPI 寄存器映射
32 通用串行总线全速设备接口 (USB)
32.1 前言
32.2 USB 主要特性
32.3 USB 实现
32.4 USB 功能说明
32.4.1 USB 模块说明
32.5 编程注意事项
32.5.1 通用 USB 设备编程
32.5.2 系统复位和上电复位
32.5.3 双缓冲端点
32.5.4 同步传输
32.5.5 挂起/恢复事件
32.6 USB 寄存器
32.6.1 通用寄存器
32.6.2 缓冲区描述符表
32.6.3 USB 寄存器映射
33 调试支持 (DBG)
33.1 概述
33.2 ARM® 参考文档
33.3 引脚排列和调试端口引脚
33.3.1 SWD 端口引脚
33.3.2 SW-DP 引脚分配
33.3.3 SWD 引脚上的内部上拉和下拉
33.4 ID 代码和锁定机制
33.4.1 MCU 器件 ID 代码
33.5 SWD 端口
33.5.1 SWD 协议简介
33.5.2 SWD 协议序列
33.5.3 SW-DP 状态机(复位、空闲状态、ID 代码)
33.5.4 DP 和 AP 读/写访问
33.5.5 SW-DP 寄存器
33.5.6 SW-AP 寄存器
33.6 内核调试
33.7 BPU(断点单元)
33.7.1 BPU 功能
33.8 DWT(数据观察点)
33.8.1 DWT 功能
33.8.2 DWT 程序计数器采样寄存器
33.9 MCU 调试组件 (DBG)
33.9.1 对低功耗模式的调试支持
33.9.2 对定时器、看门狗和 I2C 的调试支持
33.9.3 调试 MCU 配置寄存器(DBG_CR)
33.9.4 调试 MCU APB1 冻结寄存器 (DBG_APB1_FZ)
33.9.5 调试 MCU APB2 冻结寄存器 (DBG_APB2_FZ)
33.10 DBG 寄存器映射
34 设备电子签名
34.1 存储器大小寄存器
34.1.1 Flash 大小寄存器
34.2 唯一设备 ID 寄存器(96 位)
附录 A 代码示例
A.1 前言
A.2 NVM/RCC 操作代码示例
A.2.1 提高 CPU 频率的准备序列代码
A.2.2 降低 CPU 频率的准备序列代码
A.2.3 从 PLL 切换到 HSI16 的序列代码
A.2.4 切换到 PLL 的序列代码
A.3 NVM 操作代码示例
A.3.1 解锁数据 EEPROM 和 FLASH_PECR 寄存器的代码示例
A.3.2 锁定数据 EEPROM 和 FLASH_PECR 寄存器的代码示例
A.3.3 解锁 NVM 程序存储器的代码示例
A.3.4 解锁选项字节区域的代码示例
A.3.5 写入数据 EEPROM 的代码示例
A.3.6 擦除数据 EEPROM 的代码示例
A.3.7 编程选项字节的代码示例
A.3.8 擦除选项字节的代码示例
A.3.9 对 Flash 程序存储器中的单个字进行编程的代码示例
A.3.10 对 Flash 程序存储器的半页进行编程的代码示例
A.3.11 擦除 Flash 程序存储器中一页的代码示例
A.3.12 批量擦除代码示例
A.4 时钟控制器
A.4.1 HSE 启动序列代码示例
A.4.2 PLL 配置修改代码示例
A.4.3 MCO 选择代码示例
A.5 GPIO
A.5.1 锁定机制代码示例
A.5.2 复用功能选择序列代码示例
A.5.3 模拟 GPIO 配置代码示例
A.6 DMA
A.6.1 DMA 通道配置序列代码示例
A.7 中断和事件
A.7.1 NVIC 初始化示例
A.7.2 扩展中断选择代码示例
A.8 ADC
A.8.1 校准代码示例
A.8.2 ADC 使能序列代码示例
A.8.3 ADC 禁止序列代码示例
A.8.4 MCO 时钟选择代码示例
A.8.5 单次转换序列代码示例 - 软件触发
A.8.6 连续转换序列代码示例 - 软件触发
A.8.7 单次转换序列代码示例 - 硬件触发
A.8.8 连续转换序列代码示例 - 硬件触发
A.8.9 DMA 单触发模式序列代码示例
A.8.10 DMA 循环模式序列代码示例
A.8.11 等待模式序列代码示例
A.8.12 自动关闭和无等待模式序列代码示例
A.8.13 自动关闭和等待模式序列代码示例
A.8.14 模拟看门狗代码示例
A.8.15 过采样代码示例
A.8.16 温度配置代码示例
A.8.17 温度计算代码示例
A.9 DAC
A.9.1 独立触发(不产生波形)代码示例
A.9.2 独立触发(生成单个三角波)代码示例
A.9.3 DMA 初始化代码示例
A.10 TSC 代码示例
A.10.1 TSC 配置代码示例
A.10.2 TSC 中断代码示例
A.11 定时器
A.11.1 TI2 上升沿递增计数器代码示例
A.11.2 每 2 个 ETR 上升沿递增计数器代码示例
A.11.3 输入捕捉配置代码示例
A.11.4 输入捕捉数据管理代码示例
A.11.5 PWM 输入配置代码示例
A.11.6 采用 DMA 的 PWM 输入配置代码示例
A.11.7 输出比较配置代码示例
A.11.8 边沿对齐 PWM 配置示例
A.11.9 中心对齐 PWM 配置示例
A.11.10 清零 OCxREF 的 ETR 配置代码示例
A.11.11 编码器接口代码示例
A.11.12 复位模式代码示例
A.11.13 门控模式代码示例
A.11.14 触发模式代码示例
A.11.15 外部时钟模式 2 + 触发模式代码示例
A.11.16 单脉冲模式代码示例
A.11.17 将一个定时器用作另一个定时器的预分频器的代码示例
A.11.18 使用一个定时器使能另一个定时器的代码示例
A.11.19 主器件和从器件同步代码示例
A.11.20 两个定时器通过一个外部触发信号同步的代码示例
A.11.21 DMA 连续传送功能代码示例
A.12 低功耗定时器 (LPTIM)
A.12.1 脉冲计数器配置代码示例
A.13 IWDG 代码示例
A.13.1 IWDG 配置代码示例
A.13.2 IWDG 配置(带窗口)代码示例
A.14 WWDG 代码示例
A.14.1 WWDG 配置代码示例
A.15 RTC 代码示例
A.15.1 RTC 日历配置代码示例
A.15.2 RTC 闹钟配置代码示例
A.15.3 RTC WUT 配置代码示例
A.15.4 RTC 读日历代码示例
A.15.5 RTC 校准代码示例
A.15.6 RTC 入侵和时间戳配置代码示例
A.15.7 RTC 入侵和时间戳代码示例
A.15.8 RTC 时钟输出代码示例
A.16 I2C 代码示例
A.16.1 将 I2C 配置为从模式的代码示例
A.16.2 I2C 从发送器代码示例
A.16.3 I2C 从接收器代码示例
A.16.4 将 I2C 配置为主模式以进行接收的代码示例
A.16.5 将 I2C 配置为主模式以进行发送的代码示例
A.16.6 I2C 主发送器代码示例
A.16.7 I2C 主接收器代码示例
A.16.8 将 I2C 配置为主模式以通过 DMA 进行发送的代码示例
A.16.9 将 I2C 配置为从模式以通过 DMA 进行接收的代码示例
A.17 USART 代码示例
A.17.1 USART 发送器配置代码示例
A.17.2 USART 发送字节代码示例
A.17.3 USART 传输完成代码示例
A.17.4 USART 接收器配置代码示例
A.17.5 USART 接收字节代码示例
A.17.6 USART LIN 模式代码示例
A.17.7 USART 同步模式代码示例
A.17.8 USART 单线半双工代码示例
A.17.9 USART 智能卡模式代码示例
A.17.10 USART IrDA 模式代码示例
A.17.11 USART DMA 代码示例
A.17.12 USART 硬件流控制代码示例
A.18 LPUART 代码示例
A.18.1 LPUART 接收器配置代码示例
A.18.2 LPUART 接收字节代码示例
A.19 SPI 代码示例
A.19.1 SPI 主器件配置代码示例
A.19.2 SPI 从器件配置代码示例
A.19.3 SPI 全双工通信代码示例
A.19.4 SPI 主器件配置(采用 DMA)代码示例
A.19.5 SPI 从器件配置(采用 DMA)代码示例
A.19.6 SPI 中断代码示例
A.20 DBG 代码示例
A.20.1 DBG 读取器件 Id 代码示例
A.20.2 LPM 下的 DBG 调试代码示例
35 版本历史