STM32F10xxx中文参考手册:全面校对与更新

需积分: 45 4 下载量 85 浏览量 更新于2024-07-26 收藏 12.24MB PDF 举报
"STM32F10xxx参考手册中文版是基于STM32 Reference Manual (RM0008)的翻译,经过2009年6月英文第9版的全面校对,并且在2009年12月更新至英文第10版,以确保与最新版本保持同步。此手册旨在为STM32微控制器用户提供技术参考,包含内部结构、功能描述、工作模式和寄存器配置等详细信息,但不涉及产品技术特性,这部分信息可在数据手册中找到。STM32产品系列有多种型号,如STM32F101xx、STM32F102xx和STM32F103xx,每个系列都有相应的数据手册。" STM32F10xxx系列是意法半导体(STMicroelectronics)开发的一系列高性能、低功耗的ARM Cortex-M3内核微控制器。这个系列涵盖了不同内存大小和外设配置的产品,适用于各种嵌入式应用。STM32F10xxx参考手册中文版是用户理解和使用这些微控制器的重要参考资料。 手册内容详细介绍了STM32F10xxx的各个功能模块,包括但不限于: 1. 内部架构:详细阐述了处理器内核Cortex-M3、内存组织(如Flash和SRAM)、中断系统和电源管理等方面。 2. 外设接口:涵盖ADC(模拟数字转换器)、DAC(数字模拟转换器)、GPIO(通用输入输出)、SPI(串行外围接口)、I2C(仪表两线接口)、USART(通用同步/异步收发传输器)、CAN(控制器局域网络)等,以及各种定时器和PWM(脉宽调制)单元。 3. 工作模式:解释了微控制器的不同运行模式,如活动模式、睡眠模式、停止模式和待机模式,以及如何在这些模式间切换。 4. 寄存器配置:提供了所有相关寄存器的详细描述,包括它们的作用、访问权限和默认值,帮助开发者进行精确的硬件控制。 5. 系统支持:包括时钟系统、复位和电源控制,以及故障处理和调试接口。 6. 应用示例:提供了一些基本的应用程序示例,帮助用户快速上手和理解如何配置和使用STM32F10xxx的各种功能。 此外,手册还提醒读者,尽管翻译团队已尽力保证翻译的准确性和完整性,但可能存在错误或遗漏,用户在遇到问题时应以英文原版手册为最终参考,并定期检查ST官方网站以获取最新版本的手册和更新。 STM32F10xxx系列的用户可以通过这份中文版参考手册,结合数据手册,更好地理解和利用这些微控制器的强大功能,从而在设计和开发过程中提高效率和可靠性。同时,ST提供的技术支持邮箱mcu.china@st.com也是用户寻求帮助和反馈问题的渠道。
2012-10-17 上传
目录 1 文中的缩写 24 1.1 寄存器描述表中使用的缩写列表 24 1.2 术语表 24 1.3 可用的外设 24 2 存储器和总线构架 25 2.1 系统构架 25 2.2 存储器组织 27 2.3 存储器映像 28 2.3.1 嵌入式SRAM 29 2.3.2 位段 29 2.3.3 嵌入式闪存 30 2.4 启动配置 33 3 CRC计算单元(CRC) 34 3.1 CRC简介 34 3.2 CRC主要特性 34 3.3 CRC功能描述 34 3.4 CRC寄存器 35 3.4.1 数据寄存器(CRC_DR) 35 3.4.2 独立数据寄存器(CRC_IDR) 35 3.4.3 控制寄存器(CRC_CR) 36 3.4.4 CRC寄存器映像 36 4 电源控制(PWR) 37 4.1 电源 37 4.1.1 独立的A/D转换器供电和参考电压 37 4.1.2 电池备份区域 38 4.1.3 电压调节器 38 4.2 电源管理器 38 4.2.1 上电复位(POR)和掉电复位(PDR) 38 4.2.2 可编程电压监测器(PVD) 39 4.3 低功耗模式 40 4.3.1 降低系统时钟 40 4.3.2 外部时钟的控制 40 4.3.3 睡眠模式 40 4.3.4 停止模式 41 4.3.5 待机模式 42 4.3.6 低功耗模式下的自动唤醒(AWU) 43 4.4 电源控制寄存器 44 4.4.1 电源控制寄存器(PWR_CR) 44 4.4.2 电源控制/状态寄存器(PWR_CSR) 45 4.4.3 PWR寄存器地址映像 46 5 备份寄存器(BKP) 47 5.1 BKP简介 47 5.2 BKP特性 47 5.3 BKP功能描述 47 5.3.1 侵入检测 47 5.3.2 RTC校准 48 5.4 BKP寄存器描述 48 5.4.1 备份数据寄存器x(BKP_DRx) (x = 1 … 10) 48 5.4.2 RTC时钟校准寄存器(BKP_RTCCR) 48 5.4.3 备份控制寄存器(BKP_CR) 49 5.4.4 备份控制/状态寄存器(BKP_CSR) 49 5.4.5 BKP寄存器映像 51 6 小容量、中容量和大容量产品的复位和时钟控制(RCC) 54 6.1 复位 54 6.1.1 系统复位 54 6.1.2 电源复位 54 6.1.3 备份域复位 55 6.2 时钟 55 6.2.1 HSE时钟 57 6.2.2 HSI时钟 57 6.2.3 PLL 58 6.2.4 LSE时钟 58 6.2.5 LSI时钟 58 6.2.6 系统时钟(SYSCLK)选择 59 6.2.7 时钟安全系统(CSS) 59 6.2.8 RTC时钟 59 6.2.9 看门狗时钟 59 6.2.10 时钟输出 59 6.3 RCC寄存器描述 60 6.3.1 时钟控制寄存器(RCC_CR) 60 6.3.2 时钟配置寄存器(RCC_CFGR) 61 6.3.3 时钟中断寄存器 (RCC_CIR) 63 6.3.4 APB2外设复位寄存器 (RCC_APB2RSTR) 65 6.3.5 APB1外设复位寄存器 (RCC_APB1RSTR) 67 6.3.6 AHB外设时钟使能寄存器 (RCC_AHBENR) 69 6.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR) 70 6.3.8 APB1外设时钟使能寄存器(RCC_APB1ENR) 71 6.3.9 备份域控制寄存器 (RCC_BDCR) 74 6.3.10 控制/状态寄存器 (RCC_CSR) 75 6.3.11 RCC寄存器地址映像 77 7 互联型产品的复位和时钟控制(RCC) 78 7.1 复位 78 7.1.1 系统复位 78 7.1.2 电源复位 78 7.1.3 备份域复位 79 7.2 时钟 79 7.2.1 HSE时钟 81 7.2.2 HSI时钟 82 7.2.3 PLL 82 7.2.4 LSE时钟 82 7.2.5 LSI时钟 83 7.2.6 系统时钟(SYSCLK)选择 83 7.2.7 时钟安全系统(CSS) 83 7.2.8 RTC时钟 83 7.2.9 看门狗时钟 84 7.2.10 时钟输出 84 7.3 RCC寄存器 85 7.3.1 时钟控制寄存器(RCC_CR) 85 7.3.2 时钟配置寄存器(RCC_CFGR) 86 7.3.3 时钟中断寄存器(RCC_CIR) 88 7.3.4 APB2外设复位寄存器(RCC_APB2RSTR) 91 7.3.5 APB1外设复位寄存器(RCC_APB1RSTR) 92 7.3.6 AHB外设时钟使能寄存器(RCC_AHBENR) 94 7.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR) 95 7.3.8 APB1外设时钟使能寄存器(RCC_APB1ENR) 97 7.3.9 备份域控制寄存器(RCC_BDCR) 99 7.3.10 控制/状态寄存器(RCC_CSR) 100 7.3.11 AHB外设时钟复位寄存器(RCC_AHBRSTR) 101 7.3.12 时钟配置寄存器2(RCC_CFGR2) 101 7.3.13 RCC寄存器地址映像 103 8 通用和复用功能I/O(GPIO和AFIO) 105 8.1 GPIO功能描述 105 8.1.1 通用I/O(GPIO) 106 8.1.2 单独的位设置或位清除 107 8.1.3 外部中断/唤醒线 107 8.1.4 复用功能(AF) 107 8.1.5 软件重新映射I/O复用功能 107 8.1.6 GPIO锁定机制 107 8.1.7 输入配置 107 8.1.8 输出配置 108 8.1.9 复用功能配置 109 8.1.10 模拟输入配置 109 8.1.11 外设的GPIO配置 110 8.2 GPIO寄存器描述 113 8.2.1 端口配置低寄存器(GPIOx_CRL) (x=A..E) 113 8.2.2 端口配置高寄存器(GPIOx_CRH) (x=A..E) 114 8.2.3 端口输入数据寄存器(GPIOx_IDR) (x=A..E) 114 8.2.4 端口输出数据寄存器(GPIOx_ODR) (x=A..E) 115 8.2.5 端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E) 115 8.2.6 端口位清除寄存器(GPIOx_BRR) (x=A..E) 115 8.2.7 端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 116 8.3 复用功能I/O和调试配置(AFIO) 116 8.3.1 把OSC32_IN/OSC32_OUT作为GPIO 端口PC14/PC15 116 8.3.2 把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1 117 8.3.3 CAN1复用功能重映射 117 8.3.4 CAN2复用功能重映射 117 8.3.5 JTAG/SWD复用功能重映射 117 8.3.6 ADC复用功能重映射 118 8.3.7 定时器复用功能重映射 118 8.3.8 USART复用功能重映射 119 8.3.9 I2C1复用功能重映射 120 8.3.10 SPI 1复用功能重映射 120 8.3.11 SPI3复用功能重映射 120 8.3.12 以太网复用功能重映射 121 8.4 AFIO寄存器描述 121 8.4.1 事件控制寄存器(AFIO_EVCR) 121 8.4.2 复用重映射和调试I/O配置寄存器(AFIO_MAPR) 121 8.4.3 外部中断配置寄存器1(AFIO_EXTICR1) 126 8.4.4 外部中断配置寄存器2(AFIO_EXTICR2) 127 8.4.5 外部中断配置寄存器3(AFIO_EXTICR3) 127 8.4.6 外部中断配置寄存器4(AFIO_EXTICR4) 128 8.5 GPIO 和AFIO寄存器地址映象 129 9 中断和事件 130 9.1 嵌套向量中断控制器 130 9.1.1 系统嘀嗒(SysTick)校准值寄存器 130 9.1.2 中断和异常向量 130 9.2 外部中断/事件控制器(EXTI) 134 9.2.1 主要特性 134 9.2.2 框图 135 9.2.3 唤醒事件管理 135 9.2.4 功能说明 135 9.2.5 外部中断/事件线路映像 137 9.3 EXTI 寄存器描述 138 9.3.1 中断屏蔽寄存器(EXTI_IMR) 138 9.3.2 事件屏蔽寄存器(EXTI_EMR) 138 9.3.3 上升沿触发选择寄存器(EXTI_RTSR) 139 9.3.4 下降沿触发选择寄存器(EXTI_FTSR) 139 9.3.5 软件中断事件寄存器(EXTI_SWIER) 140 9.3.6 挂起寄存器(EXTI_PR) 140 9.3.7 外部中断/事件寄存器映像 141 10 DMA控制器(DMA) 142 10.1 DMA简介 142 10.2 DMA主要特性 142 10.3 功能描述 143 10.3.1 DMA处理 143 10.3.2 仲裁器 144 10.3.3 DMA 通道 144 10.3.4 可编程的数据传输宽度、对齐方式和数据大小端 145 10.3.5 错误管理 146 10.3.6 中断 146 10.3.7 DMA请求映像 147 10.4 DMA寄存器 149 10.4.1 DMA中断状态寄存器(DMA_ISR) 149 10.4.2 DMA中断标志清除寄存器(DMA_IFCR) 150 10.4.3 DMA通道x配置寄存器(DMA_CCRx)(x = 1…7) 150 10.4.4 DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7) 152 10.4.5 DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7) 152 10.4.6 DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7) 152 10.4.7 DMA寄存器映像 153 11 模拟/数字转换(ADC) 155 11.1 ADC介绍 155 11.2 ADC主要特征 155 11.3 ADC功能描述 156 11.3.1 ADC开关控制 157 11.3.2 ADC时钟 157 11.3.3 通道选择 157 11.3.4 单次转换模式 157 11.3.5 连续转换模式 158 11.3.6 时序图 158 11.3.7 模拟看门狗 158 11.3.8 扫描模式 159 11.3.9 注入通道管理 159 11.3.10 间断模式 160 11.4 校准 161 11.5 数据对齐 161 11.6 可编程的通道采样时间 161 11.7 外部触发转换 162 11.8 DMA请求 163 11.9 双ADC模式 163 11.9.1 同步注入模式 164 11.9.2 同步规则模式 165 11.9.3 快速交叉模式 165 11.9.4 慢速交叉模式 166 11.9.5 交替触发模式 166 11.9.6 独立模式 167 11.9.7 混合的规则/注入同步模式 167 11.9.8 混合的同步规则+交替触发模式 167 11.9.9 混合同步注入 + 交叉模式 168 11.10 温度传感器 168 11.11 ADC中断 169 11.12 ADC寄存器 170 11.12.1 ADC状态寄存器(ADC_SR) 170 11.12.2 ADC控制寄存器1(ADC_CR1) 171 11.12.3 ADC控制寄存器2(ADC_CR2) 173 11.12.4 ADC采样时间寄存器1(ADC_SMPR1) 175 11.12.5 ADC采样时间寄存器2(ADC_SMPR2) 175 11.12.6 ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 176 11.12.7 ADC看门狗高阀值寄存器(ADC_HTR) 176 11.12.8 ADC看门狗低阀值寄存器(ADC_LRT) 176 11.12.9 ADC规则序列寄存器1(ADC_SQR1) 177 11.12.10 ADC规则序列寄存器2(ADC_SQR2) 177 11.12.11 ADC规则序列寄存器3(ADC_SQR3) 178 11.12.12 ADC注入序列寄存器(ADC_JSQR) 178 11.12.13 ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) 179 11.12.14 ADC规则数据寄存器(ADC_DR) 179 11.12.15 ADC寄存器地址映像 180 12 数字/模拟转换(DAC) 182 12.1 DAC简介 182 12.2 DAC主要特征 182 12.3 DAC功能描述 183 12.3.1 使能DAC通道 183 12.3.2 使能DAC输出缓存 184 12.3.3 DAC数据格式 184 12.3.4 DAC转换 185 12.3.5 DAC输出电压 185 12.3.6 选择DAC触发 185 12.3.7 DMA请求 186 12.3.8 噪声生成 186 12.3.9 三角波生成 187 12.4 双DAC通道转换 187 12.4.1 不使用波形发生器的独立触发 187 12.4.2 使用相同LFSR的独立触发 188 12.4.3 使用不同LFSR的独立触发 188 12.4.4 产生相同三角波的独立触发 188 12.4.5 产生不同三角波的独立触发 188 12.4.6 同时软件启动 189 12.4.7 不使用波形发生器的同时触发 189 12.4.8 使用相同LFSR的同时触发 189 12.4.9 使用不同LFSR的同时触发 189 12.4.10 使用相同三角波发生器的同时触发 189 12.4.11 使用不同三角波发生器的同时触发 190 12.5 DAC寄存器 191 12.5.1 DAC控制寄存器(DAC_CR) 191 12.5.2 DAC软件触发寄存器(DAC_SWTRIGR) 193 12.5.3 DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) 194 12.5.4 DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) 194 12.5.5 DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) 194 12.5.6 DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) 195 12.5.7 DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) 195 12.5.8 DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2) 195 12.5.9 双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD) 196 12.5.10 双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD) 196 12.5.11 双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) 196 12.5.12 DAC通道1数据输出寄存器(DAC_DOR1) 197 12.5.13 DAC通道2数据输出寄存器(DAC_DOR2) 197 12.5.14 DAC寄存器映像 198 13 高级控制定时器(TIM1和TIM8) 199 13.1 TIM1和TIM8简介 199 13.2 TIM1和TIM8主要特性 199 13.3 TIM1和TIM8功能描述 200 13.3.1 时基单元 200 13.3.2 计数器模式 202 13.3.3 重复计数器 209 13.3.4 时钟选择 210 13.3.5 捕获/比较通道 213 13.3.6 输入捕获模式 215 13.3.7 PWM输入模式 216 13.3.8 强置输出模式 216 13.3.9 输出比较模式 217 13.3.10 PWM模式 218 13.3.11 互补输出和死区插入 220 13.3.12 使用刹车功能 221 13.3.13 在外部事件时清除OCxREF信号 223 13.3.14 产生六步PWM输出 223 13.3.15 单脉冲模式 224 13.3.16 编码器接口模式 225 13.3.17 定时器输入异或功能 227 13.3.18 与霍尔传感器的接口 227 13.3.19 TIMx定时器和外部触发的同步 229 13.3.20 定时器同步 232 13.3.21 调试模式 232 13.4 TIM1和TIM8寄存器描述 233 13.4.1 TIM1和TIM8控制寄存器1(TIMx_CR1) 233 13.4.2 TIM1和TIM8控制寄存器2(TIMx_CR2) 234 13.4.3 TIM1和TIM8从模式控制寄存器(TIMx_SMCR) 235 13.4.4 TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER) 237 13.4.5 TIM1和TIM8状态寄存器(TIMx_SR) 238 13.4.6 TIM1和TIM8事件产生寄存器(TIMx_EGR) 239 13.4.7 TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) 240 13.4.8 TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) 242 13.4.9 TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) 244 13.4.10 TIM1和TIM8计数器(TIMx_CNT) 246 13.4.11 TIM1和TIM8预分频器(TIMx_PSC) 246 13.4.12 TIM1和TIM8自动重装载寄存器(TIMx_ARR) 246 13.4.13 TIM1和TIM8重复计数寄存器(TIMx_RCR) 246 13.4.14 TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1) 247 13.4.15 TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2) 247 13.4.16 TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3) 247 13.4.17 TIM1和TIM8捕获/比较寄存器(TIMx_CCR4) 248 13.4.18 TIM1和TIM8刹车和死区寄存器(TIMx_BDTR) 248 13.4.19 TIM1和TIM8 DMA控制寄存器(TIMx_DCR) 249 13.4.20 TIM1和TIM8连续模式的DMA地址(TIMx_DMAR) 250 13.4.21 TIM1和TIM8寄存器图 251 14 通用定时器(TIMx) 253 14.1 TIMx简介 253 14.2 TIMx主要功能 253 14.3 TIMx功能描述 254 14.3.1 时基单元 254 14.3.2 计数器模式 255 14.3.3 时钟选择 263 14.3.4 捕获/比较通道 265 14.3.5 输入捕获模式 267 14.3.6 PWM输入模式 267 14.3.7 强置输出模式 268 14.3.8 输出比较模式 268 14.3.9 PWM 模式 269 14.3.10 单脉冲模式 271 14.3.11 在外部事件时清除OCxREF信号 273 14.3.12 编码器接口模式 273 14.3.13 定时器输入异或功能 275 14.3.14 定时器和外部触发的同步 275 14.3.15 定时器同步 277 14.3.16 调试模式 281 14.4 TIMx寄存器描述 282 14.4.1 控制寄存器1(TIMx_CR1) 282 14.4.2 控制寄存器2(TIMx_CR2) 283 14.4.3 从模式控制寄存器(TIMx_SMCR) 284 14.4.4 DMA/中断使能寄存器(TIMx_DIER) 285 14.4.5 状态寄存器(TIMx_SR) 286 14.4.6 事件产生寄存器(TIMx_EGR) 287 14.4.7 捕获/比较模式寄存器1(TIMx_CCMR1) 288 14.4.8 捕获/比较模式寄存器2(TIMx_CCMR2) 290 14.4.9 捕获/比较使能寄存器(TIMx_CCER) 292 14.4.10 计数器(TIMx_CNT) 293 14.4.11 预分频器(TIMx_PSC) 293 14.4.12 自动重装载寄存器(TIMx_ARR) 293 14.4.13 捕获/比较寄存器1(TIMx_CCR1) 293 14.4.14 捕获/比较寄存器2(TIMx_CCR2) 294 14.4.15 捕获/比较寄存器3(TIMx_CCR3) 294 14.4.16 捕获/比较寄存器4(TIMx_CCR4) 294 14.4.17 DMA控制寄存器(TIMx_DCR) 295 14.4.18 连续模式的DMA地址(TIMx_DMAR) 295 14.4.19 TIMx寄存器图 296 15 基本定时器(TIM6和TIM7) 298 15.1 TIM6和TIM7简介 298 15.2 TIM6和TIM7的主要特性 298 15.3 TIM6和TIM7的功能 299 15.3.1 时基单元 299 15.3.2 计数模式 300 15.3.3 时钟源 302 15.3.4 调试模式 303 15.4 TIM6和TIM7寄存器 303 15.4.1 TIM6和TIM7控制寄存器1(TIMx_CR1) 303 15.4.2 TIM6和TIM7控制寄存器2(TIMx_CR2) 304 15.4.3 TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER) 304 15.4.4 TIM6和TIM7状态寄存器(TIMx_SR) 305 15.4.5 TIM6和TIM7事件产生寄存器(TIMx_EGR) 305 15.4.6 TIM6和TIM7计数器(TIMx_CNT) 305 15.4.7 TIM6和TIM7预分频器(TIMx_PSC) 306 15.4.8 TIM6和TIM7自动重装载寄存器(TIMx_ARR) 306 15.4.9 TIM6和TIM7寄存器图 307 16 实时时钟(RTC) 308 16.1 RTC简介 308 16.2 主要特性 308 16.3 功能描述 308 16.3.1 概述 308 16.3.2 复位过程 309 16.3.3 读RTC寄存器 309 16.3.4 配置RTC寄存器 310 16.3.5 RTC标志的设置 310 16.4 RTC寄存器描述 311 16.4.1 RTC控制寄存器高位(RTC_CRH) 311 16.4.2 RTC控制寄存器低位(RTC_CRL) 311 16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 312 16.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL) 313 16.4.5 RTC计数器寄存器 (RTC_CNTH / RTC_CNTL) 313 16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) 314 16.4.7 RTC寄存器映像 315 17 独立看门狗(IWDG) 316 17.1 简介 316 17.2 IWDG主要性能 316 17.3 IWDG功能描述 316 17.3.1 硬件看门狗 316 17.3.2 寄存器访问保护 316 17.3.3 调试模式 316 17.4 IWDG寄存器描述 317 17.4.1 键寄存器(IWDG_KR) 317 17.4.2 预分频寄存器(IWDG_PR) 318 17.4.3 重装载寄存器(IWDG_RLR) 318 17.4.4 状态寄存器(IWDG_SR) 319 17.4.5 IWDG寄存器映像 319 18 窗口看门狗(WWDG) 320 18.1 WWDG简介 320 18.2 WWDG主要特性 320 18.3 WWDG功能描述 320 18.4 如何编写看门狗超时程序 321 18.5 调试模式 322 18.6 寄存器描述 322 18.6.1 控制寄存器(WWDG_CR) 322 18.6.2 配置寄存器(WWDG_CFR) 322 18.6.3 状态寄存器(WWDG_SR) 323 18.6.4 WWDG寄存器映像 323 19 灵活的静态存储器控制器(FSMC) 324 19.1 FSMC功能描述 324 19.2 框图 324 19.3 AHB接口 325 19.3.1 支持的存储器和操作 325 19.4 外部设备地址映像 326 19.4.1 NOR和PSRAM地址映像 327 19.4.2 NAND和PC卡地址映像 327 19.5 NOR闪存和PSRAM控制器 328 19.5.1 外部存储器接口信号 329 19.5.2 支持的存储器及其操作 330 19.5.3 时序规则 330 19.5.4 NOR闪存和PSRAM控制器时序图 330 19.5.5 同步的成组读 343 19.5.6 NOR闪存和PSRAM控制器寄存器 347 19.6 NAND闪存和PC卡控制器 352 19.6.1 外部存储器接口信号 352 19.6.2 NAND闪存/PC卡支持的存储器及其操作 353 19.6.3 NAND闪存、ATA和PC卡时序图 353 19.6.4 NAND闪存操作 354 19.6.5 NAND闪存预等待功能 355 19.6.6 NAND闪存的纠错码ECC计算(NAND闪存) 356 19.6.7 NAND闪存和PC卡控制器寄存器 356 19.7 FSMC寄存器地址映象 362 20 SDIO接口(SDIO) 363 20.1 SDIO主要功能 363 20.2 SDIO总线拓扑 363 20.3 SDIO功能描述 366 20.3.1 SDIO适配器 367 20.3.2 SDIO AHB接口 374 20.4 卡功能描述 374 20.4.1 卡识别模式 374 20.4.2 卡复位 374 20.4.3 操作电压范围确认 375 20.4.4 卡识别过程 375 20.4.5 写数据块 376 20.4.6 读数据块 376 20.4.7 数据流操作,数据流写入和数据流读出(只适用于多媒体卡) 376 20.4.8 擦除:成组擦除和扇区擦除 377 20.4.9 宽总线选择和解除选择 378 20.4.10 保护管理 378 20.4.11 卡状态寄存器 380 20.4.12 SD状态寄存器 382 20.4.13 SD的I/O模式 385 20.4.14 命令与响应 385 20.5 响应格式 388 20.5.1 R1(普通响应命令) 388 20.5.2 R1b 388 20.5.3 R2(CID、CSD寄存器) 388 20.5.4 R3(OCR寄存器) 389 20.5.5 R4(快速I/O) 389 20.5.6 R4b 389 20.5.7 R5(中断请求) 390 20.5.8 R6(中断请求) 390 20.6 SDIO I/O卡特定的操作 390 20.6.1 使用SDIO_D2信号线的SDIO I/O读等待操作 390 20.6.2 使用停止SDIO_CK的SDIO读等待操作 391 20.6.3 SDIO暂停/恢复操作 391 20.6.4 SDIO中断 391 20.7 CE-ATA特定操作 391 20.7.1 命令完成指示关闭 391 20.7.2 命令完成指示使能 391 20.7.3 CE-ATA中断 392 20.7.4 中止CMD61 392 20.8 硬件流控制 392 20.9 SDIO寄存器 392 20.9.1 SDIO电源控制寄存器(SDIO_POWER) 392 20.9.2 SDIO时钟控制寄存器(SDIO_CLKCR) 392 20.9.3 SDIO参数寄存器(SDIO_ARG) 393 20.9.4 SDIO命令寄存器(SDIO_CMD) 393 20.9.5 SDIO命令响应寄存器(SDIO_RESPCMD) 394 20.9.6 SDIO响应1..4寄存器(SDIO_RESPx) 395 20.9.7 SDIO数据定时器寄存器(SDIO_DTIMER) 395 20.9.8 SDIO数据长度寄存器(SDIO_DLEN) 395 20.9.9 SDIO数据控制寄存器(SDIO_DCTRL) 396 20.9.10 SDIO数据计数器寄存器(SDIO_DCOUNT) 397 20.9.11 SDIO状态寄存器(SDIO_STA) 397 20.9.12 SDIO清除中断寄存器(SDIO_ICR) 398 20.9.13 SDIO中断屏蔽寄存器(SDIO_MASK) 399 20.9.14 SDIO FIFO计数器寄存器(SDIO_FIFOCNT) 401 20.9.15 SDIO数据FIFO寄存器(SDIO_FIFO) 401 20.9.16 SDIO寄存器映像 402 21 USB全速设备接口(USB) 403 21.1 USB简介 403 21.2 USB主要特征 403 21.3 USB功能描述 404 21.3.1 USB功能模块描述 405 21.4 编程中需要考虑的问题 406 21.4.1 通用USB设备编程 406 21.4.2 系统复位和上电复位 406 21.4.3 双缓冲端点 409 21.4.4 同步传输 410 21.4.5 挂起/恢复事件 411 21.5 USB寄存器描述 412 21.5.1 通用寄存器 412 21.5.2 端点寄存器 416 21.5.3 缓冲区描述表 419 21.5.4 USB寄存器映像 421 22 控制器局域网(bxCAN) 423 22.1 bxCAN简介 423 22.2 bxCAN主要特点 423 22.3 bxCAN总体描述 424 22.3.1 CAN 2.0B主动内核 424 22.3.2 控制、状态和配置寄存器 424 22.3.3 发送邮箱 424 22.3.4 接收过滤器 424 22.4 bxCAN工作模式 426 22.4.1 初始化模式 426 22.4.2 正常模式 426 22.4.3 睡眠模式(低功耗) 426 22.5 测试模式 427 22.5.1 静默模式 427 22.5.2 环回模式 427 22.5.3 环回静默模式 428 22.6 STM32F10xxx处于调试模式时 428 22.7 bxCAN功能描述 428 22.7.1 发送处理 428 22.7.2 时间触发通信模式 430 22.7.3 接收管理 430 22.7.4 标识符过滤 431 22.7.5 报文存储 434 22.7.6 出错管理 435 22.7.7 位时间特性 436 22.8 bxCAN中断 438 22.9 CAN 寄存器描述 439 22.9.1 寄存器访问保护 439 22.9.2 CAN控制和状态寄存器 439 22.9.3 CAN邮箱寄存器 447 22.9.4 CAN过滤器寄存器 451 22.9.5 bxCAN寄存器列表 454 23 串行外设接口(SPI) 457 23.1 SPI简介 457 23.2 SPI和I2S主要特征 457 23.2.1 SPI特征 457 23.2.2 I2S功能 458 23.3 SPI功能描述 459 23.3.1 概述 459 23.3.2 配置SPI为从模式 462 23.3.3 配置SPI为主模式 462 23.3.4 配置SPI为单工通信 463 23.3.5 数据发送与接收过程 463 23.3.6 CRC计算 468 23.3.7 状态标志 469 23.3.8 关闭SPI 470 23.3.9 利用DMA的SPI通信 470 23.3.10 错误标志 472 23.3.11 SPI中断 472 23.4 I2S功能描述 473 23.4.1 I2S功能描述 473 23.4.2 支持的音频协议 474 23.4.3 时钟发生器 479 23.4.4 I2S主模式 482 23.4.5 I2S从模式 483 23.4.6 状态标志位 484 23.4.7 错误标志位 485 23.4.8 I2S中断 485 23.4.9 DMA功能 485 23.5 SPI和I2S寄存器描述 486 23.5.1 SPI控制寄存器1(SPI_CR1)(I2S模式下不使用) 486 23.5.2 SPI控制寄存器2(SPI_CR2) 487 23.5.3 SPI 状态寄存器(SPI_SR) 488 23.5.4 SPI 数据寄存器(SPI_DR) 489 23.5.5 SPI CRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用) 489 23.5.6 SPI Rx CRC寄存器(SPI_RXCRCR)(I2S模式下不使用) 490 23.5.7 SPI Tx CRC寄存器(SPI_TXCRCR) 490 23.5.8 SPI_I2S配置寄存器(SPI_I2S_CFGR) 490 23.5.9 SPI_I2S预分频寄存器(SPI_I2SPR) 491 23.5.10 SPI 寄存器地址映象 492 24 I2C接口 493 24.1 I2C简介 493 24.2 I2C主要特点 493 24.3 I2C功能描述 494 24.3.1 模式选择 494 24.3.2 I2C从模式 495 24.3.3 I2C主模式 497 24.3.4 错误条件 499 24.3.5 SDA/SCL线控制 500 24.3.6 SMBus 501 24.3.7 DMA请求 502 24.3.8 包错误校验(PEC) 503 24.4 I2C中断请求 504 24.5 I2C调试模式 505 24.6 I2C寄存器描述 505 24.6.1 控制寄存器1(I2C_CR1) 505 24.6.2 控制寄存器2(I2C_CR2) 507 24.6.3 自身地址寄存器1(I2C_OAR1) 508 24.6.4 自身地址寄存器2(I2C_OAR2) 509 24.6.5 数据寄存器(I2C_DR) 509 24.6.6 状态寄存器1(I2C_SR1) 510 24.6.7 状态寄存器2 (I2C_SR2) 512 24.6.8 时钟控制寄存器(I2C_CCR) 513 24.6.9 TRISE寄存器(I2C_TRISE) 514 24.6.10 I2C寄存器地址映象 515 25 通用同步异步收发器(USART) 516 25.1 USART介绍 516 25.2 USART主要特性 516 25.3 USART功能概述 517 25.3.1 USART 特性描述 518 25.3.2 发送器 519 25.3.3 接收器 521 25.3.4 分数波特率的产生 524 25.3.5 USART接收器容忍时钟的变化 525 25.3.6 多处理器通信 526 25.3.7 校验控制 527 25.3.8 LIN(局域互联网)模式 528 25.3.9 USART 同步模式 530 25.3.10 单线半双工通信 532 25.3.11 智能卡 532 25.3.12 IrDA SIR ENDEC 功能模块 533 25.3.13 利用DMA连续通信 535 25.3.14 硬件流控制 537 25.4 USART中断请求 538 25.5 USART模式配置 539 25.6 USART寄存器描述 540 25.6.1 状态寄存器(USART_SR) 540 25.6.2 数据寄存器(USART_DR) 541 25.6.3 波特比率寄存器(USART_BRR) 542 25.6.4 控制寄存器1(USART_CR1) 542 25.6.5 控制寄存器2(USART_CR2) 544 25.6.6 控制寄存器3(USART_CR3) 545 25.6.7 保护时间和预分频寄存器(USART_GTPR) 546 25.6.8 USART寄存器地址映象 548 26 USB OTG全速(OTG_FS) 549 26.1 OTG模块介绍 549 26.2 OTG_FS主要功能 549 26.2.1 通用功能 549 26.2.2 主机模式功能 550 26.2.3 设备模式功能 550 26.3 OTG_FS功能描述 551 26.3.1 OTG全速控制器 551 26.3.2 全速OTG PHY(物理接口) 551 26.4 OTG双角色设备(DRD) 552 26.4.1 ID信号检测 552 26.4.2 HNP双角色设备 552 26.4.3 SRP双角色设备 553 26.5 USB设备模式 553 26.5.1 具备SRP功能的设备 553 26.5.2 设备状态 554 26.5.3 设备端点 554 26.6 USB主机 556 26.6.1 具备SRP功能的主机 556 26.6.2 USB主机状态 557 26.6.3 主机通道 558 26.6.4 主机调度器 558 26.7 SOF触发 560 26.7.1 主机SOF 560 26.7.2 设备SOF 560 26.8 供电选项 560 26.9 USB数据FIFO 562 26.10 设备模式下的FIFO结构 563 26.10.1 设备模式下的接收FIFO 563 26.10.2 设备模式下的发送FIFO 563 26.11 主机模式下的FIFO结构 564 26.11.1 主机模式下的接收FIFO 564 26.11.2 主机模式下的发送FIFO 564 26.12 USB系统性能 565 26.13 OTG_FS中断 566 26.14 OTG_FS控制和状态寄存器 566 26.14.1 CSR存储器映像 567 26.14.2 OTG_FS全局寄存器 570 26.14.3 主机模式下的寄存器 585 26.14.4 设备模式下的寄存器 593 26.14.5 OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL) 608 26.14.6 OTG_FS寄存器映像 610 26.15 OTG_FS编程规则 617 26.15.1 控制器初始化 617 26.15.2 主机模式下的初始化 617 26.15.3 设备模式下的初始化 617 26.15.4 主机模式下的编程规则 618 26.15.5 设备模式下的编程规则 632 26.15.6 操作流程 633 26.15.7 最差情况下的响应时间 646 26.15.8 OTG编程规则 648 27 以太网(ETH):具有DMA控制器的介质访问控制(MAC) 652 27.1 以太网模块介绍 652 27.2 以太网模块主要功能 652 27.2.1 MAC控制器功能 652 27.2.2 DMA功能 653 27.2.3 PTP功能 654 27.3 以太网模块引脚和内部信号 654 27.4 以太网模块功能描述:SMI、MII和RMII 655 27.4.1 站点管理接口(SMI) 655 27.4.2 独立于介质的接口:MII 657 27.4.3 精简的独立于介质的接口:RMII 659 27.4.4 MII/RMII的选择 660 27.5 以太网模块功能描述:MAC 802.3 660 27.5.1 MAC 802.3帧格式 661 27.5.2 MAC帧的传输 663 27.5.3 MAC帧的接收 669 27.5.4 MAC中断 673 27.5.5 MAC过滤 673 27.5.6 MAC自循环模式 675 27.5.7 MAC管理计数器:MMC 675 27.5.8 电源管理:PMT 676 27.5.9 精确时间协议(IEEE1588 PTP) 678 27.6 以太网功能描述:DMA控制器操作 682 27.6.1 使用DMA发送的初始化步骤 683 27.6.2 主机总线突发访问 683 27.6.3 主机数据缓存对齐 684 27.6.4 缓冲区大小计算 684 27.6.5 DMA仲裁器 684 27.6.6 DMA错误响应 684 27.6.7 发送DMA设置 684 27.6.8 接收DMA设置 694 27.6.9 DMA中断 700 27.7 以太网中断 701 27.8 以太网寄存器描述 702 27.8.1 MAC寄存器描述 702 27.8.2 MMC寄存器描述 713 27.8.3 IEEE 1588时间戳寄存器 716 27.8.4 DMA寄存器描述 719 27.8.5 以太网寄存器映像 729 28 器件电子签名 732 28.1 存储器容量寄存器 732 28.1.1 闪存容量寄存器 732 28.2 产品唯一身份标识寄存器(96位) 732 29 调试支持(DBG) 734 29.1 概况 734 29.2 ARM参考文献 735 29.3 SWJ调试端口(serial wire and JTAG) 735 29.3.1 JTAG-DP和SW-DP切换的机制 736 29.4 引脚分布和调试端口脚 736 29.4.1 SWJ调试端口脚 736 29.4.2 灵活的SWJ-DP脚分配 736 29.4.3 JTAG脚上的内部上拉和下拉 737 29.4.4 利用串行接口并释放不用的调试脚作为普通I/O口 737 29.5 STM32F10xxx JTAG TAP 连接 738 29.6 ID 代码和锁定机制 738 29.6.1 微控制器设备ID编码 738 29.6.2 边界扫描TAP 739 29.6.3 Cortex-M3 TAP 740 29.6.4 Cortex-M3 JEDEC-106 ID代码 740 29.7 JTAG调试端口 740 29.8 SW调试端口 741 29.8.1 SW协议介绍 741 29.8.2 SW协议序列 741 29.8.3 SW-DP状态机(Reset, idle states, ID code) 742 29.8.4 DP和AP读/写访问 742 29.8.5 SW-DP寄存器 742 29.8.6 SW-AP寄存器 743 29.9 对于JTAG-DP或SWDP都有效的AHB-AP (AHB 访问端口) 743 29.10 内核调试 744 29.11 调试器主机在系统复位下的连接能力 744 29.12 FPB (Flash patch breakpoint) 744 29.13 DWT(数据观察点触发data watchpoint trigger) 745 29.14 ITM (指令跟踪微单元 instrumentation trace macrocell) 745 29.14.1 概述 745 29.14.2 时间戳包,同步和溢出包 745 29.15 ETM模块(嵌入式跟踪微单元Embedded Trace Macrocell) 746 29.15.1 概述 746 29.15.2 信号协议和包类型 746 29.15.3 主要的ETM寄存器 747 29.15.4 配置实例 747 29.16 MCU调试模块(MCUDBG) 747 29.16.1 低功耗模式的调试支持 747 29.16.2 支持定时器、看门狗、bxCAN和I2C的调试 747 29.16.3 调试MCU配置寄存器 748 29.17 TPIU (跟踪端口接口单元 Trace Port Interface Unit) 750 29.17.1 导言 750 29.17.2 跟踪引脚分配 750 29.17.3 TPUI格式器 752 29.17.4 TPUI帧异步包 752 29.17.5 同步帧包的发送 752 29.17.6 同步模式 752 29.17.7 异步模式 753 29.17.8 TRACECLKIN在STM32F10xxx内部的连接 753 29.17.9 TPIU寄存器 753 29.17.10 配置的例子 754 29.18 DBG寄存器地址映象 754