当前位置:首页 >> 信息与通信 >>

STM32中文参考手册


STM32F10xxx参考手册

翻译说明
本文档是依据STM32 Reference Manual (RM0008)翻译的,已经与2009年6月的英文第9版(Doc ID 13902 Rev 9)进行了全面校对,更正了不少以前版本的错误。 在校对即将结束时,ST于2009年12月中旬又发布了英文第10版(Doc ID 13902 Rev 10),为

了与最新的 英文版同步,我们按照英文第10版结尾的”文档版本历史”中的指示,在翻译的文档中快速地校对更正了对 应的部分。由于时间的关系,没有逐字逐句地按照英文第10版进行通篇校对,鉴于芯片本身没有改变, 我们相信除了”文档版本历史”中指出的差别外,英文第10版与英文第9版不会再有更多的变化,遂定稿现 在这个翻译版本为对应的中文第10版文档。 由于我们的水平有限以及文档篇幅的庞大,翻译的过程中难免会有错误和遗漏的地方,希望广大读者们 能够及时向我们反馈您在阅读期间所发现的错误和问题,我们会尽快在下一个版本中更正。您可以发邮 件到mcu.china@st.com向我们提出您的意见和建议,谢谢。 意法半导体(中国)投资有限公司 MCU技术支持 2010年1月10日

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

STM32F10xxx参考手册

文档使用说明
本手册是STM32微控制器产品的技术参考手册,技术参考手册是有关如何使用该产品的具体信息,包含 各个功能模块的内部结构、所有可能的功能描述、各种工作模式的使用和寄存器配置等详细信息。 技术参考手册不包含有关产品技术特征的说明,这些内容在数据手册中。数据手册中的内容包括:产品 的基本配置(如内置Flash和RAM的容量、外设模块的种类和数量等),管脚的数量和分配,电气特性,封 装信息,和定购代码等。 STM32是一个微控制器产品系列的总称,目前这个系列中已经包含了多个子系列,分别是:STM32小容 量产品、STM32中容量产品、STM32大容量产品和STM32互联型产品;按照功能上的划分,又可分为 STM32F101xx、STM32F102xx和STM32F103xx系列;因此STM32产品系列有以下这些数据手册: 小容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/15058.pdf 中容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/13586.pdf 大容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/14610.pdf 小容量STM32F102xx:http://www.st.com/stonline/products/literature/ds/15057.pdf 中容量STM32F102xx:http://www.st.com/stonline/products/literature/ds/15056.pdf 小容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/15060.pdf 中容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/13587.pdf 大容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/14611.pdf 互联型STM32F105xx/STM32F107xx:http://www.st.com/stonline/products/literature/ds/15274.pdf STM32微控制器产品中大多数功能模块都是在多个产品(或所有产品)中共有的并且是相同的,因此只有一 份STM32微控制器产品的技术参考手册对应所有这些产品。技术参考手册对每种功能模块都有专门的一 个章节对应,每章的开始申明了这个功能模块的适用范围;例如第5章”备份寄存器”适用于整个STM32微 控制器系列,第27章”以太网”只适用于STM32F107xx互联型产品。 为了方便阅读,下一页的表格列出了每个产品子系列所对应功能模块在技术参考手册中的章节一览。 通常在芯片选型的初期,首先要看 数据手册 以评估该产品是否能够满足设计上的功能需求;在基本选定 所需产品后,需要察看技术参考手册以确定各功能模块的工作模式是否符合要求;在确定选型进入编程 设计阶段时,需要详细阅读技术参考手册获知各项功能的具体实现方式和寄存器的配置使用。 在设计硬 件时还需参考数据手册以获得电压、电流、管脚分配、驱动能力等信息。 关于Cortex-M3核心、SysTick定时器和NVIC的详细说明,请参考另一篇ST的文档和一篇ARM的文档: 《STM32F10xxx Cortex-M3编程手册》和《Cortex?-M3技术参考手册》。

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

STM32F10xxx参考手册

STM32系列产品命名规则
示例: STM32 产品系列
STM32 = 基于ARM?的32位微控制器

F

103

C

8

T

6

A

xxx

产品类型
F = 通用类型

产品子系列
101 = 基本型 102 = USB基本型,USB 2.0全速设备 103 = 增强型 105或107 = 互联型

引脚数目
T = 36脚 C = 48脚 R = 64脚 V = 100脚 Z = 144脚

闪存存储器容量
4 = 16K字节的闪存存储器 6 = 32K字节的闪存存储器 8 = 64K字节的闪存存储器 B = 128K字节的闪存存储器 C = 256K字节的闪存存储器 D = 384K字节的闪存存储器 E = 512K字节的闪存存储器

封装
H = BGA T = LQFP U = VFQFPN Y = WLCSP64

温度范围
6 = 工业级温度范围,-40°C~85°C 7 = 工业级温度范围,-40°C~105°C

内部代码
A 或者空 (详见产品数据手册)

选项
xxx = 已编程的器件代号(3个数字) TR = 卷带式包装

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

STM32F10xxx参考手册 STM32技术参考手册各章节与各产品系列交叉对照表
小 容 量 STM32F101xx 中 容 量 大 容 量 小 容 量 STM32F102xx 中 容 量 小 容 量 STM32F103xx STM32F105xx STM32F107xx 中 容 量 大 容 量

STM32F101xx

STM32F101xx

STM32F102xx

STM32F103xx

STM32F103xx

第1章:文中的缩写 第2章:存储器和总线构架 第3章:CRC计算单元(CRC) 第4章:电源控制(PWR) 第5章:备份寄存器(BKP) 第6章:小容量、中容量和大容量产品的复位和时钟控制(RCC) 第7章:互联型产品的复位和时钟控制(RCC) 第8章:通用和复用功能I/O(GPIO和AFIO) 第9章:中断和事件 第10章:DMA控制器(DMA) 第11章:模拟/数字转换(ADC) 第12章:数字/模拟转换(DAC) 第13章:高级控制定时器(TIM1和TIM8) 第14章:通用定时器(TIMx) 第15章:基本定时器(TIM6和TIM7) 第16章:实时时钟(RTC) 第17章:独立看门狗(IWDG) 第18章:窗口看门狗(WWDG) 第19章:灵活的静态存储器控制器(FSMC) 第20章:SDIO接口(SDIO) 第21章:USB全速设备接口(USB) 第22章:控制器局域网(bxCAN) 第23章:串行外设接口(SPI) 第24章:I2C接口 第25章:通用同步异步收发器(USART) 第26章:USB OTG全速(OTG_FS) 第27章:以太网(ETH):具有DMA控制器的介质访问控制(MAC) 第28章:器件电子签名 第29章:调试支持(DBG)

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ● ●

● ● ● ● ●

● ● ● ● ●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

● ● ● ● ● ● ● ● ● ● ● ●

● ● ● ● ● ●

● ●

● ●

● ●

● ●

● ●

● ●

● ●

● ●

● ●

● ●

● 表示所在行对应的章节适用于该列标示的产品系列

提示:点击上表中的章节名字可以直接跳转到对应的章节。

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

STM32F10xxx参考手册 下表给出了一个交叉参考,在使用各功能模块时应重点阅读哪些章节:
备 份 寄 存 器 (BKP) 模 拟 数 字 模 拟 转 换 / / 数 字 转 换 (ADC) 定 时 器 (TIMx(x=1…8)) 功能模块 静 窗 态 存 口 储 看 接 门 器 口 狗 控 制 器 ( (FSMC)

SDIO

通 用 输 入 输 出 端 口

实 时 时 钟

独 立 看 门 狗

通 用 串 行 总 线

控 制 器 局 域 网

串 行 外 设 总 线

芯 片 间 总 线 接 口

通 用 同 步 异 步 收 发 器

通 用 串 行 总 线

以 太 网

(ETH)

(RTC)

(SDIO)

(IWDG)

WWDG)

(USB)

(bxCAN)

(SPI)

OTG(OTG_FS)

(DAC)

(I2C)

(GPIO)

(USART)

第1章:文中的缩写 第2章:存储器和总线构架 第3章:CRC计算单元(CRC) 第4章:电源控制(PWR) 第5章:备份寄存器(BKP) 第6章:小容量、中容量和大容量产品的复位 和时钟控制(RCC) 或 第7章:互联型产品的复位和时钟控制(RCC) 第8章:通用和复用功能I/O(GPIO和AFIO) 第9章:中断和事件 第10章:DMA控制器(DMA) 第11章:模拟/数字转换(ADC) 第12章:数字/模拟转换(DAC) 第13章:高级控制定时器(TIM1和TIM8) 第14章:通用定时器(TIMx) 第15章:基本定时器(TIM6和TIM7) 第16章:实时时钟(RTC) 第17章:独立看门狗(IWDG) 第18章:窗口看门狗(WWDG) 第19章:灵活的静态存储器控制器(FSMC) 第20章:SDIO接口(SDIO) 第21章:USB全速设备接口(USB) 第22章:控制器局域网(bxCAN) 第23章:串行外设接口(SPI) 第24章:I2C接口 第25章:通用同步异步收发器(USART) 第26章:USB OTG全速(OTG_FS) 第27章:以太网(ETH):具有DMA控制器的 介质访问控制(MAC) 第28章:器件电子签名 第29章:调试支持(DBG)

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ◎

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ◎ ● ● ● ● ◎ ● ● ● ● ● ● ● ● ● ● ● ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ● ● ◎ ◎ ● ● ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎

◎ ◎ ● ● ● ● ● ● ● ● ● ● ● ● ● ●

◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎

● 表示对应的章节是必读的 ◎ 表示对应的章节是选读的

注:请区分第7章的内容只适合于互联型产品,第6章的内容适合于除互联型产品以外的产品。
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

STM32F10xxx参考手册

参考手册
STM32F101xx, STM32F102xx、STM32F103xx、STM32F105xx 和 STM32F107xx,ARM 内核 32 位高性能微控制器
导言
本参考手册针对应用开发,提供关于如何使用STM32F101xx、STM32F102xx、STM32F103和 STM32F105xx/STM32F107xx 微 控 制 器 的 存 储 器 和 外 设 的 详 细 信 息 。 在 本 参 考 手 册 中 STM32F101xx 、 STM32F102xx 、 STM32F103 和 STM32F105xx/STM32F107xx 被 统 称 为 STM32F10xxx。 STM32F10xxx系列拥有不同的存储器容量、封装和外设配置。 关于订货编号、电气和物理性能参数,请参考小容量、中容量和大容量的STM32F101xx和 STM32F103xx 的 数 据 手 册 , 小 容 量 和 中 容 量 的 STM32F102xx 数 据 手 册 和 STM32F105xx/ STM32F107xx互联型产品的数据手册。 关于芯片内部闪存的编程,擦除和保护操作,请参考STM32F10xxx闪存编程手册。 关于ARM Cortex?-M3内核的具体信息,请参考Cortex?-M3技术参考手册。

相关文档
● Cortex?-M3技术参考手册,可按下述链接下载: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0337e/DDI0337E_cortex_m3_r1p1_trm.pdf 下述文档可在ST网站下载(http://www.st.com/mcu/): ● STM32F101xx、STM32F102xx和STM32F103xx的数据手册。 ● STM32F10xxx闪存编程手册。

相关数据手册下载地址:
小容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/15058.pdf 中容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/13586.pdf 大容量STM32F101xx:http://www.st.com/stonline/products/literature/ds/14610.pdf 小容量STM32F102xx:http://www.st.com/stonline/products/literature/ds/15057.pdf 中容量STM32F102xx:http://www.st.com/stonline/products/literature/ds/15056.pdf 小容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/15060.pdf 中容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/13587.pdf 大容量STM32F103xx:http://www.st.com/stonline/products/literature/ds/14611.pdf 互联型STM32F105xx/STM32F107xx:http://www.st.com/stonline/products/literature/ds/15274.pdf STM32F10xxx Cortex-M3编程手册:http://www.st.com/stonline/products/literature/pm/15491.pdf

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录

STM32F10xxx参考手册

目录 1 文中的缩写
1.1 1.2 1.3 寄存器描述表中使用的缩写列表 术语表 可用的外设 系统构架 存储器组织 存储器映像 2.3.1 2.3.2 2.3.3 2.4 嵌入式SRAM 位段 嵌入式闪存

24
24 24 24

2

存储器和总线构架
2.1 2.2 2.3

25
25 27 28 29 29 30 33

启动配置 CRC简介 CRC主要特性 CRC功能描述 CRC寄存器 3.4.1 3.4.2 3.4.3 3.4.4 数据寄存器(CRC_DR) 独立数据寄存器(CRC_IDR) 控制寄存器(CRC_CR) CRC寄存器映像

3

CRC计算单元(CRC)
3.1 3.2 3.3 3.4

34
34 34 34 35 35 35 36 36

4

电源控制(PWR)
4.1 电源 4.1.1 4.1.2 4.1.3 4.2 4.2.1 4.2.2 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.4 4.4.1 4.4.2 4.4.3 独立的A/D转换器供电和参考电压 电池备份区域 电压调节器 上电复位(POR)和掉电复位(PDR) 可编程电压监测器(PVD) 降低系统时钟 外部时钟的控制 睡眠模式 停止模式 待机模式 低功耗模式下的自动唤醒(AWU) 电源控制寄存器(PWR_CR) 电源控制/状态寄存器(PWR_CSR) PWR寄存器地址映像

37
37 37 38 38 38 38 39 40 40 40 40 41 42 43 44 44 45 46

电源管理器

低功耗模式

电源控制寄存器

5

备份寄存器(BKP)
5.1 5.2 BKP简介 BKP特性

47
47 47
7/754

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 5.3 BKP功能描述 5.3.1 5.3.2 5.4 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 侵入检测 RTC校准 备份数据寄存器x(BKP_DRx) (x = 1 … 10) RTC时钟校准寄存器(BKP_RTCCR) 备份控制寄存器(BKP_CR) 备份控制/状态寄存器(BKP_CSR) BKP寄存器映像

STM32F10xxx参考手册 47 47 48 48 48 48 49 49 51

BKP寄存器描述

6

小容量、中容量和大容量产品的复位和时钟控制(RCC)
6.1 复位 6.1.1 6.1.2 6.1.3 6.2 时钟 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.2.8 6.2.9 6.2.10 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 6.3.10 6.3.11 HSE时钟 HSI时钟 PLL LSE时钟 LSI时钟 系统时钟(SYSCLK)选择 时钟安全系统(CSS) RTC时钟 看门狗时钟 时钟输出 时钟控制寄存器(RCC_CR) 时钟配置寄存器(RCC_CFGR) 时钟中断寄存器 (RCC_CIR) APB2外设复位寄存器 (RCC_APB2RSTR) APB1外设复位寄存器 (RCC_APB1RSTR) AHB外设时钟使能寄存器 (RCC_AHBENR) APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) 备份域控制寄存器 (RCC_BDCR) 控制/状态寄存器 (RCC_CSR) RCC寄存器地址映像 系统复位 电源复位 备份域复位

54
54 54 54 55 55 57 57 58 58 58 59 59 59 59 59 60 60 61 63 65 67 69 70 71 74 75 77

RCC寄存器描述

7

互联型产品的复位和时钟控制(RCC)
7.1 复位 7.1.1 7.1.2 7.1.3 7.2 时钟 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 HSE时钟 HSI时钟 PLL LSE时钟 LSI时钟 系统时钟(SYSCLK)选择 系统复位 电源复位 备份域复位

78
78 78 78 79 79 81 82 82 82 83 83
8/754

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 7.2.7 7.2.8 7.2.9 7.2.10 7.3 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.3.8 7.3.9 7.3.10 7.3.11 7.3.12 7.3.13 时钟安全系统(CSS) RTC时钟 看门狗时钟 时钟输出 时钟控制寄存器(RCC_CR) 时钟配置寄存器(RCC_CFGR) 时钟中断寄存器(RCC_CIR) APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR) AHB外设时钟使能寄存器(RCC_AHBENR) APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) 备份域控制寄存器(RCC_BDCR) 控制/状态寄存器(RCC_CSR) AHB外设时钟复位寄存器(RCC_AHBRSTR) 时钟配置寄存器2(RCC_CFGR2) RCC寄存器地址映像

STM32F10xxx参考手册 83 83 84 84 85 85 86 88 91 92 94 95 97 99 100 101 101 103

RCC寄存器

8

通用和复用功能I/O(GPIO和AFIO)
8.1 GPIO功能描述 8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 8.1.7 8.1.8 8.1.9 8.1.10 8.1.11 8.2 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.2.7 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 8.3.6 8.3.7 8.3.8 8.3.9 8.3.10 通用I/O(GPIO) 单独的位设置或位清除 外部中断/唤醒线 复用功能(AF) 软件重新映射I/O复用功能 GPIO锁定机制 输入配置 输出配置 复用功能配置 模拟输入配置 外设的GPIO配置 端口配置低寄存器(GPIOx_CRL) (x=A..E) 端口配置高寄存器(GPIOx_CRH) (x=A..E) 端口输入数据寄存器(GPIOx_IDR) (x=A..E) 端口输出数据寄存器(GPIOx_ODR) (x=A..E) 端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E) 端口位清除寄存器(GPIOx_BRR) (x=A..E) 端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 把OSC32_IN/OSC32_OUT作为GPIO 端口PC14/PC15 把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1 CAN1复用功能重映射 CAN2复用功能重映射 JTAG/SWD复用功能重映射 ADC复用功能重映射 定时器复用功能重映射 USART复用功能重映射 I2C1复用功能重映射 SPI 1复用功能重映射

105
105 106 107 107 107 107 107 107 108 109 109 110 113 113 114 114 115 115 115 116 116 116 117 117 117 117 118 118 119 120 120
9/754

GPIO寄存器描述

复用功能I/O和调试配置(AFIO)

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 8.3.11 8.3.12 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.4.6 8.5 SPI3复用功能重映射 以太网复用功能重映射 事件控制寄存器(AFIO_EVCR) 复用重映射和调试I/O配置寄存器(AFIO_MAPR) 外部中断配置寄存器1(AFIO_EXTICR1) 外部中断配置寄存器2(AFIO_EXTICR2) 外部中断配置寄存器3(AFIO_EXTICR3) 外部中断配置寄存器4(AFIO_EXTICR4)

STM32F10xxx参考手册 120 121 121 121 121 126 127 127 128 129

AFIO寄存器描述

GPIO 和AFIO寄存器地址映象 嵌套向量中断控制器 9.1.1 9.1.2 系统嘀嗒(SysTick)校准值寄存器 中断和异常向量 主要特性 框图 唤醒事件管理 功能说明 外部中断/事件线路映像 中断屏蔽寄存器(EXTI_IMR) 事件屏蔽寄存器(EXTI_EMR) 上升沿触发选择寄存器(EXTI_RTSR) 下降沿触发选择寄存器(EXTI_FTSR) 软件中断事件寄存器(EXTI_SWIER) 挂起寄存器(EXTI_PR) 外部中断/事件寄存器映像

9

中断和事件
9.1

130
130 130 130 134 134 135 135 135 137 138 138 138 139 139 140 140 141

9.2

外部中断/事件控制器(EXTI) 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5

9.3

EXTI 寄存器描述 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.3.6 9.3.7

10

DMA控制器(DMA)
10.1 10.2 10.3 DMA简介 DMA主要特性 功能描述 DMA处理 仲裁器 DMA 通道 可编程的数据传输宽度、对齐方式和数据大小端 错误管理 中断 DMA请求映像 DMA中断状态寄存器(DMA_ISR) DMA中断标志清除寄存器(DMA_IFCR) DMA通道x配置寄存器(DMA_CCRx)(x = 1…7) DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7) DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7) DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7) DMA寄存器映像

142
142 142 143 143 144 144 145 146 146 147 149 149 150 150 152 152 152 153

10.3.1 10.3.2 10.3.3 10.3.4 10.3.5 10.3.6 10.3.7 10.4 10.4.1 10.4.2 10.4.3 10.4.4 10.4.5 10.4.6 10.4.7

DMA寄存器

11

模拟/数字转换(ADC)

155
10/754

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 11.1 11.2 11.3 ADC介绍 ADC主要特征 ADC功能描述 11.3.1 11.3.2 11.3.3 11.3.4 11.3.5 11.3.6 11.3.7 11.3.8 11.3.9 11.3.10 11.4 11.5 11.6 11.7 11.8 11.9 校准 数据对齐 可编程的通道采样时间 外部触发转换 DMA请求 双ADC模式 11.9.1 11.9.2 11.9.3 11.9.4 11.9.5 11.9.6 11.9.7 11.9.8 11.9.9 同步注入模式 同步规则模式 快速交叉模式 慢速交叉模式 交替触发模式 独立模式 混合的规则/注入同步模式 混合的同步规则+交替触发模式 混合同步注入 + 交叉模式 ADC开关控制 ADC时钟 通道选择 单次转换模式 连续转换模式 时序图 模拟看门狗 扫描模式 注入通道管理 间断模式

STM32F10xxx参考手册 155 155 156 157 157 157 157 158 158 158 159 159 160 161 161 161 162 163 163 164 165 165 166 166 167 167 167 168 168 169 170 170 171 173 175 175 176 176 176 177 177 178 178 179 179 180

11.10 温度传感器 11.11 ADC中断 11.12 ADC寄存器 11.12.1 11.12.2 11.12.3 11.12.4 11.12.5 11.12.6 11.12.7 11.12.8 11.12.9 11.12.10 11.12.11 11.12.12 11.12.13 11.12.14 11.12.15 ADC状态寄存器(ADC_SR) ADC控制寄存器1(ADC_CR1) ADC控制寄存器2(ADC_CR2) ADC采样时间寄存器1(ADC_SMPR1) ADC采样时间寄存器2(ADC_SMPR2) ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) ADC看门狗高阀值寄存器(ADC_HTR) ADC看门狗低阀值寄存器(ADC_LRT) ADC规则序列寄存器1(ADC_SQR1) ADC规则序列寄存器2(ADC_SQR2) ADC规则序列寄存器3(ADC_SQR3) ADC注入序列寄存器(ADC_JSQR) ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) ADC规则数据寄存器(ADC_DR) ADC寄存器地址映像

12

数字/模拟转换(DAC)
12.1 DAC简介

182
182
11/754

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 12.2 12.3 DAC主要特征 DAC功能描述 使能DAC通道 使能DAC输出缓存 DAC数据格式 DAC转换 DAC输出电压 选择DAC触发 DMA请求 噪声生成 三角波生成 不使用波形发生器的独立触发 使用相同LFSR的独立触发 使用不同LFSR的独立触发 产生相同三角波的独立触发 产生不同三角波的独立触发 同时软件启动 不使用波形发生器的同时触发 使用相同LFSR的同时触发 使用不同LFSR的同时触发 使用相同三角波发生器的同时触发 使用不同三角波发生器的同时触发 DAC控制寄存器(DAC_CR) DAC软件触发寄存器(DAC_SWTRIGR) DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2) 双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD) 双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD) 双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) DAC通道1数据输出寄存器(DAC_DOR1) DAC通道2数据输出寄存器(DAC_DOR2) DAC寄存器映像

STM32F10xxx参考手册 182 183 183 184 184 185 185 185 186 186 187 187 187 188 188 188 188 189 189 189 189 189 190 191 191 193 194 194 194 195 195 195 196 196 196 197 197 198

12.3.1 12.3.2 12.3.3 12.3.4 12.3.5 12.3.6 12.3.7 12.3.8 12.3.9 12.4 12.4.1 12.4.2 12.4.3 12.4.4 12.4.5 12.4.6 12.4.7 12.4.8 12.4.9 12.4.10 12.4.11 12.5 12.5.1 12.5.2 12.5.3 12.5.4 12.5.5 12.5.6 12.5.7 12.5.8 12.5.9 12.5.10 12.5.11 12.5.12 12.5.13 12.5.14

双DAC通道转换

DAC寄存器

13

高级控制定时器(TIM1 和TIM8)
13.1 13.2 13.3 TIM1和TIM8简介 TIM1和TIM8主要特性 TIM1和TIM8功能描述 时基单元 计数器模式 重复计数器 时钟选择 捕获/比较通道 输入捕获模式 PWM输入模式 强置输出模式

199
199 199 200 200 202 209 210 213 215 216 216 12/754

13.3.1 13.3.2 13.3.3 13.3.4 13.3.5 13.3.6 13.3.7 13.3.8

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 13.3.9 13.3.10 13.3.11 13.3.12 13.3.13 13.3.14 13.3.15 13.3.16 13.3.17 13.3.18 13.3.19 13.3.20 13.3.21 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.4.5 13.4.6 13.4.7 13.4.8 13.4.9 13.4.10 13.4.11 13.4.12 13.4.13 13.4.14 13.4.15 13.4.16 13.4.17 13.4.18 13.4.19 13.4.20 13.4.21 输出比较模式 PWM模式 互补输出和死区插入 使用刹车功能 在外部事件时清除OCxREF信号 产生六步PWM输出 单脉冲模式 编码器接口模式 定时器输入异或功能 与霍尔传感器的接口 TIMx定时器和外部触发的同步 定时器同步 调试模式 TIM1和TIM8控制寄存器1(TIMx_CR1) TIM1和TIM8控制寄存器2(TIMx_CR2) TIM1和TIM8从模式控制寄存器(TIMx_SMCR) TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER) TIM1和TIM8状态寄存器(TIMx_SR) TIM1和TIM8事件产生寄存器(TIMx_EGR) TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) TIM1和TIM8计数器(TIMx_CNT) TIM1和TIM8预分频器(TIMx_PSC) TIM1和TIM8自动重装载寄存器(TIMx_ARR) TIM1和TIM8重复计数寄存器(TIMx_RCR) TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1) TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2) TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3) TIM1和TIM8捕获/比较寄存器(TIMx_CCR4) TIM1和TIM8刹车和死区寄存器(TIMx_BDTR) TIM1和TIM8 DMA控制寄存器(TIMx_DCR) TIM1和TIM8连续模式的DMA地址(TIMx_DMAR) TIM1和TIM8寄存器图

STM32F10xxx参考手册 217 218 220 221 223 223 224 225 227 227 229 232 232 233 233 234 235 237 238 239 240 242 244 246 246 246 246 247 247 247 248 248 249 250 251

TIM1和TIM8寄存器描述

14

通用定时器(TIMx)
14.1 14.2 14.3 TIMx简介 TIMx主要功能 TIMx功能描述 时基单元 计数器模式 时钟选择 捕获/比较通道 输入捕获模式 PWM输入模式 强置输出模式 输出比较模式 PWM 模式 单脉冲模式 在外部事件时清除OCxREF信号 编码器接口模式

253
253 253 254 254 255 263 265 267 267 268 268 269 271 273 273 13/754

14.3.1 14.3.2 14.3.3 14.3.4 14.3.5 14.3.6 14.3.7 14.3.8 14.3.9 14.3.10 14.3.11 14.3.12

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 14.3.13 14.3.14 14.3.15 14.3.16 14.4 14.4.1 14.4.2 14.4.3 14.4.4 14.4.5 14.4.6 14.4.7 14.4.8 14.4.9 14.4.10 14.4.11 14.4.12 14.4.13 14.4.14 14.4.15 14.4.16 14.4.17 14.4.18 14.4.19 定时器输入异或功能 定时器和外部触发的同步 定时器同步 调试模式 控制寄存器1(TIMx_CR1) 控制寄存器2(TIMx_CR2) 从模式控制寄存器(TIMx_SMCR) DMA/中断使能寄存器(TIMx_DIER) 状态寄存器(TIMx_SR) 事件产生寄存器(TIMx_EGR) 捕获/比较模式寄存器1(TIMx_CCMR1) 捕获/比较模式寄存器2(TIMx_CCMR2) 捕获/比较使能寄存器(TIMx_CCER) 计数器(TIMx_CNT) 预分频器(TIMx_PSC) 自动重装载寄存器(TIMx_ARR) 捕获/比较寄存器1(TIMx_CCR1) 捕获/比较寄存器2(TIMx_CCR2) 捕获/比较寄存器3(TIMx_CCR3) 捕获/比较寄存器4(TIMx_CCR4) DMA控制寄存器(TIMx_DCR) 连续模式的DMA地址(TIMx_DMAR) TIMx寄存器图

STM32F10xxx参考手册 275 275 277 281 282 282 283 284 285 286 287 288 290 292 293 293 293 293 294 294 294 295 295 296

TIMx寄存器描述

15

基本定时器(TIM6 和TIM7)
15.1 15.2 15.3 TIM6和TIM7简介 TIM6和TIM7的主要特性 TIM6和TIM7的功能 时基单元 计数模式 时钟源 调试模式 TIM6和TIM7控制寄存器1(TIMx_CR1) TIM6和TIM7控制寄存器2(TIMx_CR2) TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER) TIM6和TIM7状态寄存器(TIMx_SR) TIM6和TIM7事件产生寄存器(TIMx_EGR) TIM6和TIM7计数器(TIMx_CNT) TIM6和TIM7预分频器(TIMx_PSC) TIM6和TIM7自动重装载寄存器(TIMx_ARR) TIM6和TIM7寄存器图

298
298 298 299 299 300 302 303 303 303 304 304 305 305 305 306 306 307

15.3.1 15.3.2 15.3.3 15.3.4 15.4 15.4.1 15.4.2 15.4.3 15.4.4 15.4.5 15.4.6 15.4.7 15.4.8 15.4.9

TIM6和TIM7寄存器

16

实时时钟(RTC)
16.1 16.2 16.3 RTC简介 主要特性 功能描述 概述 复位过程 读RTC寄存器

308
308 308 308 308 309 309
14/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

16.3.1 16.3.2 16.3.3

目录 16.3.4 16.3.5 16.4 16.4.1 16.4.2 16.4.3 16.4.4 16.4.5 16.4.6 16.4.7 配置RTC寄存器 RTC标志的设置 RTC控制寄存器高位(RTC_CRH) RTC控制寄存器低位(RTC_CRL) RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL) RTC计数器寄存器 (RTC_CNTH / RTC_CNTL) RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) RTC寄存器映像

STM32F10xxx参考手册 310 310 311 311 311 312 313 313 314 315

RTC寄存器描述

17

独立看门狗(IWDG)
17.1 17.2 17.3 简介 IWDG主要性能 IWDG功能描述 硬件看门狗 寄存器访问保护 调试模式 键寄存器(IWDG_KR) 预分频寄存器(IWDG_PR) 重装载寄存器(IWDG_RLR) 状态寄存器(IWDG_SR) IWDG寄存器映像

316
316 316 316 316 316 316 317 317 318 318 319 319

17.3.1 17.3.2 17.3.3 17.4 17.4.1 17.4.2 17.4.3 17.4.4 17.4.5

IWDG寄存器描述

18

窗口看门狗(WWDG)
18.1 18.2 18.3 18.4 18.5 18.6 WWDG简介 WWDG主要特性 WWDG功能描述 如何编写看门狗超时程序 调试模式 寄存器描述 控制寄存器(WWDG_CR) 配置寄存器(WWDG_CFR) 状态寄存器(WWDG_SR) WWDG寄存器映像

320
320 320 320 321 322 322 322 322 323 323

18.6.1 18.6.2 18.6.3 18.6.4

19

灵活的静态存储器控制器(FSMC)
19.1 19.2 19.3 19.4 FSMC功能描述 框图 AHB接口 支持的存储器和操作 NOR和PSRAM地址映像 NAND和PC卡地址映像 外部存储器接口信号 支持的存储器及其操作 时序规则 NOR闪存和PSRAM控制器时序图 外部设备地址映像

324
324 324 325 325 326 327 327 328 329 330 330 330 15/754

19.3.1 19.4.1 19.4.2 19.5 19.5.1 19.5.2 19.5.3 19.5.4

NOR闪存和PSRAM控制器

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 19.5.5 19.5.6 19.6 19.6.1 19.6.2 19.6.3 19.6.4 19.6.5 19.6.6 19.6.7 19.7 同步的成组读 NOR闪存和PSRAM控制器寄存器 外部存储器接口信号 NAND闪存/PC卡支持的存储器及其操作 NAND闪存、ATA和PC卡时序图 NAND闪存操作 NAND闪存预等待功能 NAND闪存的纠错码ECC计算(NAND闪存) NAND闪存和PC卡控制器寄存器

STM32F10xxx参考手册 343 347 352 352 353 353 354 355 356 356 362

NAND闪存和PC卡控制器

FSMC寄存器地址映象 SDIO主要功能 SDIO总线拓扑 SDIO功能描述 SDIO适配器 SDIO AHB接口 卡识别模式 卡复位 操作电压范围确认 卡识别过程 写数据块 读数据块 数据流操作,数据流写入和数据流读出(只适用于多媒体卡) 擦除:成组擦除和扇区擦除 宽总线选择和解除选择 保护管理 卡状态寄存器 SD状态寄存器 SD的I/O模式 命令与响应 R1(普通响应命令) R1b R2(CID、CSD寄存器) R3(OCR寄存器) R4(快速I/O) R4b R5(中断请求) R6(中断请求) 使用SDIO_D2信号线的SDIO I/O读等待操作 使用停止SDIO_CK的SDIO读等待操作 SDIO暂停/恢复操作 SDIO中断 命令完成指示关闭 命令完成指示使能

20

SDIO接口(SDIO)
20.1 20.2 20.3

363
363 363 366 367 374 374 374 374 375 375 376 376 376 377 378 378 380 382 385 385 388 388 388 388 389 389 389 390 390 390 390 391 391 391 391 391 391 16/754

20.3.1 20.3.2 20.4 20.4.1 20.4.2 20.4.3 20.4.4 20.4.5 20.4.6 20.4.7 20.4.8 20.4.9 20.4.10 20.4.11 20.4.12 20.4.13 20.4.14 20.5 20.5.1 20.5.2 20.5.3 20.5.4 20.5.5 20.5.6 20.5.7 20.5.8 20.6 20.6.1 20.6.2 20.6.3 20.6.4 20.7 20.7.1 20.7.2

卡功能描述

响应格式

SDIO I/O卡特定的操作

CE-ATA特定操作

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 20.7.3 20.7.4 20.8 20.9 CE-ATA中断 中止CMD61

STM32F10xxx参考手册 392 392 392 392 392 392 393 393 394 395 395 395 396 397 397 398 399 401 401 402

硬件流控制 SDIO寄存器 SDIO电源控制寄存器(SDIO_POWER) SDIO时钟控制寄存器(SDIO_CLKCR) SDIO参数寄存器(SDIO_ARG) SDIO命令寄存器(SDIO_CMD) SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN) SDIO数据控制寄存器(SDIO_DCTRL) SDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA) SDIO清除中断寄存器(SDIO_ICR) SDIO中断屏蔽寄存器(SDIO_MASK) SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO) SDIO寄存器映像

20.9.1 20.9.2 20.9.3 20.9.4 20.9.5 20.9.6 20.9.7 20.9.8 20.9.9 20.9.10 20.9.11 20.9.12 20.9.13 20.9.14 20.9.15 20.9.16

21

USB全速设备接口(USB)
21.1 21.2 21.3 21.4 USB简介 USB主要特征 USB功能描述 USB功能模块描述 通用USB设备编程 系统复位和上电复位 双缓冲端点 同步传输 挂起/恢复事件 通用寄存器 端点寄存器 缓冲区描述表 USB寄存器映像 编程中需要考虑的问题

403
403 403 404 405 406 406 406 409 410 411 412 412 416 419 421

21.3.1 21.4.1 21.4.2 21.4.3 21.4.4 21.4.5 21.5 21.5.1 21.5.2 21.5.3 21.5.4

USB寄存器描述

22

控制器局域网(bxCAN)
22.1 22.2 22.3 bxCAN简介 bxCAN主要特点 bxCAN总体描述 CAN 2.0B主动内核 控制、状态和配置寄存器 发送邮箱 接收过滤器 初始化模式 正常模式 睡眠模式(低功耗)

423
423 423 424 424 424 424 424 426 426 426 426
17/754

22.3.1 22.3.2 22.3.3 22.3.4 22.4 22.4.1 22.4.2 22.4.3

bxCAN工作模式

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 22.5 测试模式 静默模式 环回模式 环回静默模式

STM32F10xxx参考手册 427 427 427 428 428 428 428 430 430 431 434 435 436 438 439 439 439 447 451 454 22.5.1 22.5.2 22.5.3

22.6 22.7

STM32F10xxx处于调试模式时 bxCAN功能描述 发送处理 时间触发通信模式 接收管理 标识符过滤 报文存储 出错管理 位时间特性

22.7.1 22.7.2 22.7.3 22.7.4 22.7.5 22.7.6 22.7.7 22.8 22.9

bxCAN中断 CAN 寄存器描述 寄存器访问保护 CAN控制和状态寄存器 CAN邮箱寄存器 CAN过滤器寄存器 bxCAN寄存器列表

22.9.1 22.9.2 22.9.3 22.9.4 22.9.5

23

串行外设接口(SPI)
23.1 23.2 SPI简介 SPI和I S主要特征 SPI特征 I2S功能 概述 配置SPI为从模式 配置SPI为主模式 配置SPI为单工通信 数据发送与接收过程 CRC计算 状态标志 关闭SPI 利用DMA的SPI通信 错误标志 SPI中断 I S功能描述 支持的音频协议 时钟发生器 I2S主模式 I2S从模式 状态标志位 错误标志位 I2S中断 DMA功能
2 2

457
457 457 457 458 459 459 462 462 463 463 468 469 470 470 472 472 473 473 474 479 482 483 484 485 485 485 486
18/754

23.2.1 23.2.2 23.3 23.3.1 23.3.2 23.3.3 23.3.4 23.3.5 23.3.6 23.3.7 23.3.8 23.3.9 23.3.10 23.3.11 23.4 23.4.1 23.4.2 23.4.3 23.4.4 23.4.5 23.4.6 23.4.7 23.4.8 23.4.9 23.5

SPI功能描述

I2S功能描述

SPI和I2S寄存器描述

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 23.5.1 23.5.2 23.5.3 23.5.4 23.5.5 23.5.6 23.5.7 23.5.8 23.5.9 23.5.10 SPI控制寄存器1(SPI_CR1)(I2S模式下不使用) SPI控制寄存器2(SPI_CR2) SPI 状态寄存器(SPI_SR) SPI 数据寄存器(SPI_DR) SPI CRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用) SPI Rx CRC寄存器(SPI_RXCRCR)(I2S模式下不使用) SPI Tx CRC寄存器(SPI_TXCRCR) SPI_I2S配置寄存器(SPI_I2S_CFGR) SPI_I2S预分频寄存器(SPI_I2SPR) SPI 寄存器地址映象

STM32F10xxx参考手册 486 487 488 489 489 490 490 490 491 492

24

I2C接口
24.1 24.2 24.3 I C简介 I C主要特点 I C功能描述 模式选择 I2C从模式 I2C主模式 错误条件 SDA/SCL线控制 SMBus DMA请求 包错误校验(PEC)
2 2 2

493
493 493 494 494 495 497 499 500 501 502 503 504 505 505 505 507 508 509 509 510 512 513 514 515

24.3.1 24.3.2 24.3.3 24.3.4 24.3.5 24.3.6 24.3.7 24.3.8 24.4 24.5 24.6
2 2

I2C中断请求 I C调试模式 I C寄存器描述 控制寄存器1(I2C_CR1) 控制寄存器2(I2C_CR2) 自身地址寄存器1(I2C_OAR1) 自身地址寄存器2(I2C_OAR2) 数据寄存器(I2C_DR) 状态寄存器1(I2C_SR1) 状态寄存器2 (I2C_SR2) 时钟控制寄存器(I2C_CCR) TRISE寄存器(I2C_TRISE) I2C寄存器地址映象

24.6.1 24.6.2 24.6.3 24.6.4 24.6.5 24.6.6 24.6.7 24.6.8 24.6.9 24.6.10

25

通用同步异步收发器(USART)
25.1 25.2 25.3 USART介绍 USART主要特性 USART功能概述 USART 特性描述 发送器 接收器 分数波特率的产生 USART接收器容忍时钟的变化 多处理器通信 校验控制 LIN(局域互联网)模式 USART 同步模式 单线半双工通信

516
516 516 517 518 519 521 524 525 526 527 528 530 532
19/754

25.3.1 25.3.2 25.3.3 25.3.4 25.3.5 25.3.6 25.3.7 25.3.8 25.3.9 25.3.10

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 25.3.11 25.3.12 25.3.13 25.3.14 25.4 25.5 25.6 智能卡 IrDA SIR ENDEC 功能模块 利用DMA连续通信 硬件流控制

STM32F10xxx参考手册 532 533 535 537 538 539 540 540 541 542 542 544 545 546 548

USART中断请求 USART模式配置 USART寄存器描述 状态寄存器(USART_SR) 数据寄存器(USART_DR) 波特比率寄存器(USART_BRR) 控制寄存器1(USART_CR1) 控制寄存器2(USART_CR2) 控制寄存器3(USART_CR3) 保护时间和预分频寄存器(USART_GTPR) USART寄存器地址映象

25.6.1 25.6.2 25.6.3 25.6.4 25.6.5 25.6.6 25.6.7 25.6.8

26

USB OTG全速(OTG_FS)
26.1 26.2 OTG模块介绍 OTG_FS主要功能 通用功能 主机模式功能 设备模式功能 OTG全速控制器 全速OTG PHY(物理接口) ID信号检测 HNP双角色设备 SRP双角色设备 具备SRP功能的设备 设备状态 设备端点 具备SRP功能的主机 USB主机状态 主机通道 主机调度器 主机SOF 设备SOF

549
549 549 549 550 550 551 551 551 552 552 552 553 553 553 554 554 556 556 557 558 558 560 560 560 560 562 563 563 563 564 564
20/754

26.2.1 26.2.2 26.2.3 26.3 26.3.1 26.3.2 26.4 26.4.1 26.4.2 26.4.3 26.5 26.5.1 26.5.2 26.5.3 26.6 26.6.1 26.6.2 26.6.3 26.6.4 26.7 26.7.1 26.7.2 26.8 26.9

OTG_FS功能描述

OTG双角色设备(DRD)

USB设备模式

USB主机

SOF触发

供电选项 USB数据FIFO 设备模式下的接收FIFO 设备模式下的发送FIFO 主机模式下的接收FIFO

26.10 设备模式下的FIFO结构 26.10.1 26.10.2 26.11.1

26.11 主机模式下的FIFO结构

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 26.11.2 主机模式下的发送FIFO

STM32F10xxx参考手册 564 565 566 566 567 570 585 593 608 610 617 617 617 617 618 632 633 646 648

26.12 USB系统性能 26.13 OTG_FS中断 26.14 OTG_FS控制和状态寄存器 26.14.1 26.14.2 26.14.3 26.14.4 26.14.5 26.14.6 26.15.1 26.15.2 26.15.3 26.15.4 26.15.5 26.15.6 26.15.7 26.15.8 CSR存储器映像 OTG_FS全局寄存器 主机模式下的寄存器 设备模式下的寄存器 OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL) OTG_FS寄存器映像 控制器初始化 主机模式下的初始化 设备模式下的初始化 主机模式下的编程规则 设备模式下的编程规则 操作流程 最差情况下的响应时间 OTG编程规则

26.15 OTG_FS编程规则

27

以太网(ETH):具有DMA控制器的介质访问控制(MAC)
27.1 27.2 以太网模块介绍 以太网模块主要功能 MAC控制器功能 DMA功能 PTP功能

652
652 652 652 653 654 654 655 655 657 659 660 660 661 663 669 673 673 675 675 676 678 682 683 683 684 684 684 684
21/754

27.2.1 27.2.2 27.2.3 27.3 27.4

以太网模块引脚和内部信号 以太网模块功能描述:SMI、MII和RMII 站点管理接口(SMI) 独立于介质的接口:MII 精简的独立于介质的接口:RMII MII/RMII的选择 MAC 802.3帧格式 MAC帧的传输 MAC帧的接收 MAC中断 MAC过滤 MAC自循环模式 MAC管理计数器:MMC 电源管理:PMT 精确时间协议(IEEE1588 PTP) 使用DMA发送的初始化步骤 主机总线突发访问 主机数据缓存对齐 缓冲区大小计算 DMA仲裁器 DMA错误响应

27.4.1 27.4.2 27.4.3 27.4.4 27.5 27.5.1 27.5.2 27.5.3 27.5.4 27.5.5 27.5.6 27.5.7 27.5.8 27.5.9 27.6 27.6.1 27.6.2 27.6.3 27.6.4 27.6.5 27.6.6

以太网模块功能描述:MAC 802.3

以太网功能描述:DMA控制器操作

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

目录 27.6.7 27.6.8 27.6.9 27.7 27.8 发送DMA设置 接收DMA设置 DMA中断

STM32F10xxx参考手册 684 694 700 701 702 702 713 716 719 729

以太网中断 以太网寄存器描述 MAC寄存器描述 MMC寄存器描述 IEEE 1588时间戳寄存器 DMA寄存器描述 以太网寄存器映像

27.8.1 27.8.2 27.8.3 27.8.4 27.8.5

28

器件电子签名
28.1 28.2 存储器容量寄存器 闪存容量寄存器 产品唯一身份标识寄存器(96位) 概况 ARM参考文献 SWJ调试端口(serial wire and JTAG) JTAG-DP和SW-DP切换的机制 SWJ调试端口脚 灵活的SWJ-DP脚分配 JTAG脚上的内部上拉和下拉 利用串行接口并释放不用的调试脚作为普通I/O口 引脚分布和调试端口脚 28.1.1

732
732 732 732

29

调试支持(DBG)
29.1 29.2 29.3 29.4

734
734 735 735 736 736 736 736 737 737 738 738 738 739 740 740 740 741 741 741 742 742 742 743 743 744 744 744 745 745 745 745
22/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

29.3.1 29.4.1 29.4.2 29.4.3 29.4.4 29.5 29.6

STM32F10xxx JTAG TAP 连接 ID 代码和锁定机制 微控制器设备ID编码 边界扫描TAP Cortex-M3 TAP Cortex-M3 JEDEC-106 ID代码

29.6.1 29.6.2 29.6.3 29.6.4 29.7 29.8

JTAG调试端口 SW调试端口 SW协议介绍 SW协议序列 SW-DP状态机(Reset, idle states, ID code) DP和AP读/写访问 SW-DP寄存器 SW-AP寄存器

29.8.1 29.8.2 29.8.3 29.8.4 29.8.5 29.8.6 29.9

对于JTAG-DP或SWDP都有效的AHB-AP (AHB 访问端口)

29.10 内核调试 29.11 调试器主机在系统复位下的连接能力 29.12 FPB (Flash patch breakpoint) 29.13 DWT(数据观察点触发data watchpoint trigger) 29.14 ITM (指令跟踪微单元 instrumentation trace macrocell) 29.14.1 29.14.2 概述 时间戳包,同步和溢出包

目录 29.15 ETM模块(嵌入式跟踪微单元Embedded Trace Macrocell) 29.15.1 29.15.2 29.15.3 29.15.4 29.16.1 29.16.2 29.16.3 29.17.1 29.17.2 29.17.3 29.17.4 29.17.5 29.17.6 29.17.7 29.17.8 29.17.9 29.17.10 概述 信号协议和包类型 主要的ETM寄存器 配置实例 低功耗模式的调试支持 支持定时器、看门狗、bxCAN和I2C的调试 调试MCU配置寄存器 导言 跟踪引脚分配 TPUI格式器 TPUI帧异步包 同步帧包的发送 同步模式 异步模式 TRACECLKIN在STM32F10xxx内部的连接 TPIU寄存器 配置的例子

STM32F10xxx参考手册 746 746 746 747 747 747 747 747 748 750 750 750 752 752 752 752 753 753 753 754 754

29.16 MCU调试模块(MCUDBG)

29.17 TPIU (跟踪端口接口单元 Trace Port Interface Unit)

29.18 DBG寄存器地址映象

23/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

1
1.1

文中的缩写
寄存器描述表中使用的缩写列表
在对寄存器的描述中使用了下列缩写:
read / write (rw) read-only (r) write-only (w) read/clear (rc_w1) read / clear (rc_w0) read / clear by read (rc_r) read / set (rs) read-only write trigger (rt_w) toggle (t) Reserved(Res.) 软件能读写此位。 软件只能读此位。 软件只能写此位,读此位将返回复位值。 软件可以读此位,也可以通过写’1’清除此位,写’0’对此位无影响。 软件可以读此位,也可以通过写’0’清除此位,写’1’对此位无影响。 软件可以读此位;读此位将自动地清除它为’0’,写’0’对此位无影响。 软件可以读也可以设置此位,写’0’对此位无影响。 软件可以读此位;写’0’或’1’触发一个事件但对此位数值没有影响。 软件只能通过写’1’来翻转此位,写’0’对此位无影响。 保留位,必须保持默认值不变

1.2

术语表
● 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 ● 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx 和STM32F103xx微控制器。 ● 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx 微控制器。 ● 互联型产品是STM32F105xx和STM32F107xx微控制器。

1.3

可用的外设
有关STM32微控制器系列全部型号中,某外设存在与否及其数目,请查阅相应的小容量、中容 量或者大容量STM32F101xx和STM32F103xx以及小容量和中容量STM32F102xx的数据手册, 以及STM32F105xx/STM32F107xx数据手册。

24/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

2
2.1

存储器和总线构架
系统构架
在小容量、中容量和 大容量产品中,主系统由以下部分构成: ● 四个驱动单元: ─ ─ Cortex?-M3内核DCode总线(D-bus),和系统总线(S-bus) 通用DMA1和通用DMA2

● 四个被动单元 ─ 内部SRAM ─ 内部闪存存储器 ─ FSMC ─ AHB到APB的桥(AHB2APBx),它连接所有的APB设备 这些都是通过一个多级的AHB总线构架相互连接的,如下图图1所示: 图1 系统结构

在互联型产品中,主系统由以下部分构成: ● 五个驱动单元: ─ ─ ─ Cortex?-M3内核DCode总线(D-bus),和系统总线(S-bus) 通用DMA1和通用DMA2 以太网DMA

● 三个被动单元 ─ 内部SRAM ─ 内部闪存存储器 ─ AHB到APB的桥(AHB2APBx),它连接所有的APB设备 这些都是通过一个多级的AHB总线构架相互连接的,如图2所示:
25/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构 图2 互联型产品的系统结构

STM32F10xxx参考手册

ICode总线
该总线将Cortex?-M3内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。

DCode总线
该总线将Cortex?-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访 问)。

系统总线
此总线连接Cortex?-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间 的访问。

DMA总线
此 总 线将 DMA 的AHB主 控 接口 与总 线 矩阵 相联 , 总线 矩阵 协 调着 CPU 的 DCode 和 DMA 到 SRAM、闪存和外设的访问。

总线矩阵
总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。在互联型产 品中,总线矩阵包含5个驱动部件(CPU的DCode、系统总线、以太网DMA、DMA1总线和 DMA2总线)和3个从部件(闪存存储器接口(FLITF)、SRAM和AHB2APB桥)。在其它产品中总线 矩阵包含4个驱动部件(CPU的DCode、系统总线、DMA1总线和DMA2总线)和4个被动部件(闪存 存储器接口(FLITF)、SRAM、FSMC和AHB2APB桥)。 AHB外设通过总线矩阵与系统总线相连,允许DMA访问。

26/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

AHB/APB桥(APB)
两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操 作于全速(最高72MHz)。 有关连接到每个桥的不同外设的地址映射请参考 表1 。在每一次复位以后,所有除SRAM和 FLITF以外的外设都被关闭,在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外 设的时钟。

注意: 当对APB寄存器进行8位或者16位访问时,该访问会被自动转换成32位的访问:桥会自动将8位 或者32位的数据扩展以配合32位的向量。

2.2

存储器组织
程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。 数据字节以小端格式存放在存储器中。一个字里的最低地址字节被认为是该字的最低有效字 节,而最高地址字节是最高有效字节。 外设寄存器的映像请参考相关章节。 可访问的存储器空间被分成8个主要块,每个块为512MB。 其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间,请参考相应器件的 数据手册中的存储器映像图。

27/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

2.3

存储器映像
请参考相应器件的数据手册中的存储器映像图。 表1列出了所用STM32F10xxx中内置外设的起 始地址。 表1 寄存器组起始地址
外设 USB OTG 全速 保留 以太网 保留 CRC 闪存存储器接口 保留 复位和时钟控制(RCC) 保留 DMA2 DMA1 保留 SDIO 保留 ADC3 USART1 TIM8定时器 SPI1 TIM1定时器 ADC2 ADC1 GPIO端口G GPIO端口F GPIO端口E GPIO端口D GPIO端口C GPIO端口B GPIO端口A EXTI AFIO 保留 DAC 电源控制(PWR) 后备寄存器(BKP) bxCAN2 bxCAN1 USB/CAN共享的512字节SRAM APB1 参见12.5.14节 参见4.4.3节 参见5.4.5节 参见22.9.5节 参见22.9.5节 APB2 参见11.12.15节 参见25.6.8节 参见13.4.21节 参见23.5节 参见13.4.21节 参见11.12.15节 参见11.12.15节 参见8.5节 参见8.5节 参见8.5节 参见8.5节 参见8.5节 参见8.5节 参见8.5节 参见9.3.7节 参见8.5节 参见20.9.16节 AHB 参见6.3.11节 参见3.4.4节 AHB 参见27.8.5节 总线 寄存器映像 参见26.14.6节

起始地址 0x5000 0000 – 0x5003 FFFF 0x4003 0000 – 0x4FFF FFFF 0x4002 8000 – 0x4002 9FFF 0x4002 3400 - 0x4002 3FFF 0x4002 3000 - 0x4002 33FF 0x4002 2000 - 0x4002 23FF 0x4002 1400 - 0x4002 1FFF 0x4002 1000 - 0x4002 13FF 0x4002 0800 - 0x4002 0FFF 0x4002 0400 - 0x4002 07FF 0x4002 0000 - 0x4002 03FF 0x4001 8400 - 0x4001 7FFF 0x4001 8000 - 0x4001 83FF 0x4001 4000 - 0x4001 7FFF 0x4001 3C00 - 0x4001 3FFF 0x4001 3800 - 0x4001 3BFF 0x4001 3400 - 0x4001 37FF 0x4001 3000 - 0x4001 33FF 0x4001 2C00 - 0x4001 2FFF 0x4001 2800 - 0x4001 2BFF 0x4001 2400 - 0x4001 27FF 0x4001 2000 - 0x4001 23FF 0x4001 2000 - 0x4001 23FF 0x4001 1800 - 0x4001 1BFF 0x4001 1400 - 0x4001 17FF 0x4001 1000 - 0x4001 13FF 0X4001 0C00 - 0x4001 0FFF 0x4001 0800 - 0x4001 0BFF 0x4001 0400 - 0x4001 07FF 0x4001 0000 - 0x4001 03FF 0x4000 7800 - 0x4000FFFF 0x4000 7400 - 0x4000 77FF 0x4000 7000 - 0x4000 73FF 0x4000 6C00 - 0x4000 6FFF 0x4000 6800 - 0x4000 6BFF 0x4000 6400 - 0x4000 67FF 0x4000 6000
(1)

参见10.4.7节 参见10.4.7节

- 0x4000 63FF

28/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构
0x4000 5C00 - 0x4000 5FFF 0x4000 5800 - 0x4000 5BFF 0x4000 5400 - 0x4000 57FF 0x4000 5000 - 0x4000 53FF 0x4000 4C00 - 0x4000 4FFF 0x4000 4800 - 0x4000 4BFF 0x4000 4400 - 0x4000 47FF 0x4000 4000 - 0x4000 3FFF 0x4000 3C00 - 0x4000 3FFF 0x4000 3800 - 0x4000 3BFF 0x4000 3400 - 0x4000 37FF 0x4000 3000 - 0x4000 33FF 0x4000 2C00 - 0x4000 2FFF 0x4000 2800 - 0x4000 2BFF 0x4000 1800 - 0x4000 27FF 0x4000 1400 - 0x4000 17FF 0x4000 1000 - 0x4000 13FF 0x4000 0C00 - 0x4000 0FFF 0x4000 0800 - 0x4000 0BFF 0x4000 0400 - 0x4000 07FF 0x4000 0000 - 0x4000 03FF USB全速设备寄存器 I2C2 I2C1 UART5 UART4 USART3 USART2 保留 SPI3/I2S3 SPI2/I2S3 保留 独立看门狗(IWDG) 窗口看门狗(WWDG) RTC 保留 TIM7定时器 TIM6定时器 TIM5定时器 TIM4定时器 TIM3定时器 TIM2定时器

STM32F10xxx参考手册
参见21.5.4节 参见24.6.10节 参见24.6.10节 参见25.6.8节 参见25.6.8节 参见25.6.8节 参见25.6.8节

参见23.5节 参见23.5节

参见17.4.5节 参见18.6.4节 参见16.4.7节

参见15.4.9节 参见15.4.9节 参见14.4.19节 参见14.4.19节 参见14.4.19节 参见14.4.19节

1.只在小容量、中容量和大容量的产品中才有这个共享的SRAM区域,互联型产品中没有这个区域。

2.3.1

嵌入式SRAM
STM32F10xxx内置64K字节的静态SRAM。它可以以字节、半字(16位)或全字(32位)访问。 SRAM的起始地址是0x2000 0000。

2.3.2

位段
Cortex?-M3存储器映像包括两个位段(bit-band)区。这两个位段区将别名存储器区中的每个字 映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写操 作的相同效果。 在STM32F10xxx里,外设寄存器和SRAM都被映射到一个位段区里,这允许执行单一的位段的 写和读操作。 下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的: bit_word_addr = bit_band_base + (byte_offset×32) + (bit_number×4) 其中: bit_word_addr是别名存储器区中字的地址,它映射到某个目标位。 bit_band_base是别名区的起始地址。 byte_offset是包含目标位的字节在位段里的序号 bit_number是目标位所在位置(0-31)

例子:
下面的例子说明如何映射别名区中SRAM地址为0x20000300的字节中的位2: 0x22006008 = 0x22000000 + (0x300×32) + (2×4). 对0x22006008地址的写操作与对SRAM中地址0x20000300字节的位2执行读-改-写操作有着相 同的效果。
29/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

读0x22006008地址返回SRAM中地址0x20000300字节的位2的值(0x01 或 0x00)。 请参考《Cortex?-M3技术参考手册》以了解更多有关位段的信息。

2.3.3

嵌入式闪存
高性能的闪存模块有以下的主要特性: ● 高达512K字节闪存存储器结构:闪存存储器有主存储块和信息块组成: 主存储块容量: 小容量产品主存储块最大为4K×64位,每个存储块划分为32个1K字节的页(见表2)。 中容量产品主存储块最大为16K×64位,每个存储块划分为128个1K字节的页(见表3)。 大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页(见表4)。 互联型产品主存储块最大为32K×64位,每个存储块划分为128个2K字节的页(见表5)。 ─ 信息块容量: 互联型产品有2360×64位(见表5)。 其它产品有258×64位(见表2、表3、表4)。 闪存存储器接口的特性为: ● 带预取缓冲器的读接口(每字为2×64位) ● 选择字节加载器 ● 闪存编程/擦除操作 ● 访问/写保护 表2
模块



闪存模块的组织(小容量产品)
名称 页0 页1 页2 地址 0x0800 0000 - 0x0800 03FF 0x0800 0400 - 0x0800 07FF 0x0800 0800 - 0x0800 0BFF 0x0800 0C00 - 0x0800 0FFF 0x0800 1000 - 0x0800 13FF … … 0x0800 7C00 - 0x0800 7FFF 0x1FFF F000 - 0x1FFF F7FF 0x1FFF F800 - 0x1FFF F80F 0x4002 2000 - 0x4002 2003 0x4002 2004 - 0x4002 2007 0x4002 2008 - 0x4002 200B 0x4002 200C - 0x4002 200F 0x4002 2010 - 0x4002 2013 0x4002 2014 - 0x4002 2017 0x4002 2018 - 0x4002 201B 0x4002 201C - 0x4002 201F 0x4002 2020 - 0x4002 2023 大小(字节) 1K 1K 1K 1K 1K … … 1K 2K 16 4 4 4 4 4 4 4 4 4

主存储块

页3 页4 … … 页31 系统存储器 选择字节 FLASH_ACR FALSH_KEYR FLASH_OPTKEYR FLASH_SR FLASH_CR FLASH_AR 保留 FLASH_OBR FLASH_WRPR

信息块

闪存存储器 接口寄存器

30/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构 表3
模块

STM32F10xxx参考手册

闪存模块的组织(中容量产品)
名称 页0 页1 页2 地址 0x0800 0000 - 0x0800 03FF 0x0800 0400 - 0x0800 07FF 0x0800 0800 - 0x0800 0BFF 0x0800 0C00 - 0x0800 0FFF 0x0800 1000 - 0x0800 13FF … … 0x0801 FC00 - 0x0801 FFFF 0x1FFF F000 - 0x1FFF F7FF 0x1FFF F800 - 0x1FFF F80F 0x4002 2000 - 0x4002 2003 0x4002 2004 - 0x4002 2007 0x4002 2008 - 0x4002 200B 0x4002 200C - 0x4002 200F 0x4002 2010 - 0x4002 2013 0x4002 2014 - 0x4002 2017 0x4002 2018 - 0x4002 201B 0x4002 201C - 0x4002 201F 0x4002 2020 - 0x4002 2023 大小(字节) 1K 1K 1K 1K 1K … … 1K 2K 16 4 4 4 4 4 4 4 4 4

主存储块

页3 页4 … … 页127 系统存储器 选择字节 FLASH_ACR FALSH_KEYR FLASH_OPTKEYR FLASH_SR FLASH_CR FLASH_AR 保留 FLASH_OBR FLASH_WRPR

信息块

闪存存储器 接口寄存器

表4
模块

闪存模块的组织(大容量产品)
名称 页0 页1 页2 地址 0x0800 0000 - 0x0800 07FF 0x0800 0800 - 0x0800 0FFF 0x0800 1000 - 0x0800 17FF 0x0800 1800 - 0x0800 1FFF … … 0x0807 F800 - 0x0807 FFFF 0x1FFF F000 - 0x1FFF F7FF 0x1FFF F800 - 0x1FFF F80F 0x4002 2000 - 0x4002 2003 0x4002 2004 - 0x4002 2007 0x4002 2008 - 0x4002 200B 0x4002 200C - 0x4002 200F 0x4002 2010 - 0x4002 2013 0x4002 2014 - 0x4002 2017 0x4002 2018 - 0x4002 201B 0x4002 201C - 0x4002 201F 0x4002 2020 - 0x4002 2023 大小(字节) 2K 2K 2K 2K … … 2K 2K 16 4 4 4 4 4 4 4 4 4

主存储块

页3 … … 页255 系统存储器 选择字节 FLASH_ACR FALSH_KEYR FLASH_OPTKEYR FLASH_SR FLASH_CR FLASH_AR 保留 FLASH_OBR FLASH_WRPR

信息块

闪存存储器 接口寄存器

31/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构 表5
模块

STM32F10xxx参考手册

闪存模块的组织(互联型产品)
名称 页0 页1 页2 地址 0x0800 0000 - 0x0800 07FF 0x0800 0800 - 0x0800 0FFF 0x0800 1000 - 0x0800 17FF 0x0800 1800 - 0x0800 1FFF … … 0x0803 F800 - 0x0803 FFFF 0x1FFF B000 - 0x1FFF F7FF 0x1FFF F800 - 0x1FFF F80F 0x4002 2000 - 0x4002 2003 0x4002 2004 - 0x4002 2007 0x4002 2008 - 0x4002 200B 0x4002 200C - 0x4002 200F 0x4002 2010 - 0x4002 2013 0x4002 2014 - 0x4002 2017 0x4002 2018 - 0x4002 201B 0x4002 201C - 0x4002 201F 0x4002 2020 - 0x4002 2023 大小(字节) 2K 2K 2K 2K … … 2K 18K 16 4 4 4 4 4 4 4 4 4

主存储块

页3 … … 页127 系统存储器 选择字节 FLASH_ACR FALSH_KEYR FLASH_OPTKEYR FLASH_SR FLASH_CR FLASH_AR 保留 FLASH_OBR FLASH_WRPR

信息块

闪存存储器 接口寄存器

注:

有关闪存寄存器的详细信息,请参考《STM32F10xxx闪存编程手册》

闪存读取
闪存的指令和数据访问是通过AHB总线完成的。预取模块是用于通过ICode总线读取指令的。仲 裁是作用在闪存接口,并且DCode总线上的数据访问优先。 读访问可以有以下配置选项: ● 等待时间:可以随时更改的用于读取操作的等待状态的数量。 ● 预取缓冲区(2个64位):在每一次复位以后被自动打开,由于每个缓冲区的大小(64位)与闪 存的带宽相同,因此只通过需一次读闪存的操作即可更新整个缓冲区的内容。由于预取缓 冲区的存在,CPU可以工作在更高的主频。CPU每次取指最多为32位的字,取一条指令 时,下一条指令已经在缓冲区中等待。 ● 半周期:用于功耗优化。

注:

1. 这些选项应与闪存存储器的访问时间一起使用。等待周期体现了系统时钟(SYSCLK)频率与闪

存访问时间的关系: 0等待周期,当 0 < SYSCLK < 24MHz 1等待周期,当 24MHz < SYSCLK ≤ 48MHz 2等待周期,当 48MHz < SYSCLK ≤ 72MHz 2 . 半周期配置不能与使用了预分频器的AHB一起使用,时钟系统应该等于HCLK时钟。该特性 只能用在时钟频率为8MHz或低于8MHz时,可以直接使用的内部RC振荡器(HSI),或者是主振 荡器(HSE),但不能用PLL。 3. 当AHB预分频系数不为1时,必须置预取缓冲区处于开启状态。 4. 只有在系统时钟(SYSCLK)小于24MHz并且没有打开AHB的预分频器(即HCLK必须等于 SYSHCLK)时,才能执行预取缓冲器的打开和关闭操作。一般而言,在初始化过程中执行预取 缓冲器的打开和关闭操作,这时微控制器的时钟由8MHz的内部RC振荡器(HSI)提供。 5. 使用DMA:DMA在DCode总线上访问闪存存储器,它的优先级比ICode上的取指高。DMA在 每次传送完成后具有一个空余的周期。有些指令可以和DMA传输一起执行。
32/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

存储器和总线架构

STM32F10xxx参考手册

编程和擦除闪存
闪存编程一次可以写入16位(半字)。 闪存擦除操作可以按页面擦除或完全擦除(全擦除)。全擦除不影响信息块。 为了确保不发生过度编程, 闪存编程和擦除控制器块是由一个固定的时钟控制的。 写操作(编程或擦除)结束时可以触发中断。仅当闪存控制器接口时钟开启时,此中断可以用来从 WFI模式退出。

注:

有关闪存存储器的操作和寄存器配置,请参考STM32F10xxx闪存编程手册。

2.4

启动配置
在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。 表6 启动模式
启动模式选择引脚 BOOT1 X 0 1 BOOT0 0 1 1 主闪存存储器 系统存储器 内置SRAM 主闪存存储器被选为启动区域 系统存储器被选为启动区域 内置SRAM被选为启动区域 启动模式 说明

在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1 和BOOT0引脚的状态,来选择在复位后的启动模式。 在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持 为需要的启动配置。在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动 存储器的0x0000 0004指示的地址开始执行代码。 因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问), 而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。Cortex-M3的CPU始终从 ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。STM32F10xxx 微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从 内置SRAM启动。 根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问: ● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原 有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000。 ● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的 地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。 ● 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。

注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从 新映射向量表之SRAM中。

内嵌的自举程序
内嵌的自举程序存放在系统存储区,由ST在生产线上写入,用于通过可用的串行接口对闪存存 储器进行重新编程: ● 对于小容量、中容量和大容量的产品而言,可以通过USART1接口启用自举程序。进一步的 细节请查询AN2606。 ● 对于互联型产品而言,可以通过以下某个接口启用自举程序:USART1、USART2(重映像 的)、CAN2(重映像的)或USB OTG全速接口的设备模式(通过设备固件更新DFU协议)。 USART接口依靠内部8MHz振荡器(HSI)运行。CAN和USB OTG接口只能当外部有一个 8MHz、14.7456MHz或25MHz时钟(HSE)时运行。进一步的细节请查询AN2606。

33/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

CRC计算单元(CRC)

STM32F10xxx参考手册

3

CRC计算单元(CRC)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列。

3.1

CRC简介
循环冗余校验(CRC)计算单元是根据固定的生成多项式得到任一32位全字的CRC计算结果。 在其他的应用中, CRC技术主要应用于核实数据传输或者数据存储的正确性和完整性。标准 EN/IEC 60335-1即提供了一种核实闪存存储器完整性的方法。CRC计算单元可以在程序运行时 计算出软件的标识,之后与在连接时生成的参考标识比较,然后存放在指定的存储器空间。

3.2

CRC主要特性
● 使用CRC-32(以太网)多项式:0x4C11DB7 X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X4 + X2 + X +1 ● 一个32位数据寄存器用于输入 / 输出 ─ ● CRC计算时间:4个AHB时钟周期(HCLK) ● 通用8位寄存器(可用于存放临时数据) 下图为CRC计算单元框图 图3 CRC 计算单元框图

3.3

CRC功能描述
CRC计算单元含有1个32位数据寄存器: ● 对该寄存器进行写操作时,作为输入寄存器,可以输入要进行CRC计算的新数据。 ● 对该寄存器进行读操作时,返回上一次CRC计算的结果。 每一次写入数据寄存器,其计算结果是前一次CRC计算结果和新计算结果的组合(对整个32位字 进行CRC计算,而不是逐字节地计算)。
34/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

CRC计算单元(CRC)

STM32F10xxx参考手册

在CRC计算期间会暂停CPU的写操作,因此可以对寄存器CRC_DR进行背靠背写入或者连续地 写-读操作。 可以通过设置寄存器CRC_CR的RESET位来重置寄存器CRC_DR为0xFFFF FFFF。该操作不 影响寄存器CRC_IDR内的数据。

3.4
3.4.1

CRC寄存器
CRC计算单元包括2个数据寄存器和1个控制寄存器

数据寄存器(CRC_DR)
地址偏移:0x00 复位值:0xFFFF FFFF

31 rw 15

30 rw 14

29 rw 13

28 rw 12

27 rw 11

26 rw 10

25 rw 9

24 rw 8

23 rw 7

22 rw 6

21 rw 5

20 rw 4

19 rw 3

18 rw 2

17 rw 1

16 rw 0

DR[31:16]

DR[15:0] rw rw rw
位31: 0

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

数据寄存器位 写入CRC计算器的新数据时,作为输入寄存器 读取时返回CRC计算的结果

3.4.2

独立数据寄存器(CRC_IDR)
地址偏移:0x04 复位值:0x0000 0000

15

14

13

12

11 保留

10

9

8

7

6

5

4

3

2

1

0

IDR[7:0] rw rw rw rw rw rw rw rw

位31:8 位7:0

保留。 通用8位数据寄存器位 可用于临时存放1字节的数据。 寄存器CRC_CR的RESET位产生的CRC复位对本寄存器没有影响

译注:此寄存器不参与CRC计算,可以存放任何数据。

35/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

CRC计算单元(CRC)

STM32F10xxx参考手册

3.4.3

控制寄存器(CRC_CR)
地址偏移:0x08 复位值:0x0000 0000

31

30

29

28

27

26

25

24 保留

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8 保留

7

6

5

4

3

2

1

0 RESET w

位31:1 位0

保留。 RESET位 复位CRC计算单元,设置数据寄存器为0xFFFF FFFF。 只能对该位写’1’,它由硬件自动清’0’。

3.4.4

CRC寄存器映像
下表列出了CRC的寄存器映像和复位值 表7 CRC 计算单元寄存器映像和复位值

偏移 0x00 0x04 0x08

寄存器 CRC_DR 复位值 CRC_IDR 复位值 CRC_CR 复位值

31~24

23~16

15~8

7

6

5

4

3

2

1

0

数据寄存器 0xFFFF FFFF 保留 保留 独立的数据寄存器 0x00 保留 0 RESET 0

36/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

4

电源控制(PWR)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列。

4.1

电源
STM32的工作电压(VDD)为2.0~3.6V。通过内置的电压调节器提供所需的1.8V电源。 当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。 图4 电源框图

注:

VDDA和VSSA必须分别联到VDD和VSS。

4.1.1

独立的A/D转换器供电和参考电压
为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺 干扰。 ● ADC的电源引脚为VDDA ● 独立的电源地VSSA 如果有VREF-引脚(根据封装而定),它必须连接到VSSA。
37/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

100脚和144脚封装:
为了确保输入为低压时获得更好精度,用户可以连接一个独立的外部参考电压ADC到VREF+和 VREF-脚上。在VREF+的电压范围为2.4V~VDDA。

64脚或更少封装:
没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源(VDDA)和地(VSSA)相联。

4.1.2

电池备份区域
使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的 功能。 VBAT脚也为RTC、LSE振荡器和PC13至PC15供电,这保证当主要电源被切断时RTC能继续工 作。切换到VBAT供电由复位模块中的掉电复位功能控制。 如果应用中没有使用外部电池,VBAT必须连接到VDD引脚上。 注意: 在VDD 上升阶段(tRSTTEMPO)或者探测到PVD之后,VBAT 和VDD 之间的电源开关仍会保持连接在 VBAT。在VDD上升阶段,如果VDD在小于tRSTTEMPO的时间内达到稳定状态(关于tRSTTEMPO可参考数 据手册中的相关部分),且VDD > VBAT + 0.6V时,电流可能通过VDD和VBAT之间的内部二极管注 入到VBAT。 如果与VBAT连接的电源或者电池不能承受这样的注入电流,强烈建议在外部VBAT和电源之间连 接一个低压降二极管。 如果在应用中没有外部电池,建议VBAT在外部通过一个100nF的陶瓷电容与VDD相连,更多细节 参阅AN2586。 当备份区域由VDD(内部模拟开关连到VDD)供电时,下述功能可用: ● PC14和PC15可以用于GPIO或LSE引脚 ● PC13可以作为通用I/O口、TAMPER引脚、RTC校准时钟、RTC闹钟或秒输出(参见第5 章:备份寄存器(BKP))

注:

因为模拟开关只能通过少量的电流(3mA),在输出模式下使用PC13至PC15的I/O口功能是有限 制的:速度必须限制在2MHz以下,最大负载为30pF,而且这些I/O口绝对不能当作电流源(如驱 动LED)。
当后备区域由VBAT供电时(VDD消失后模拟开关连到VBAT),可以使用下述功能: ● PC14和PC15只能用于LSE引脚 ● PC13可以作为TAMPER引脚、RTC闹钟或秒输出(参见第5.4.2节:RTC时钟校准寄存器 (BKP_RTCCR))

4.1.3

电压调节器
复位后调节器总是使能的。根据应用方式它以3种不同的模式工作。 ● 运转模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设)。 ● 停止模式:调节器以低功耗模式提供1.8V电源,以保存寄存器和SRAM的内容。 ● 待机模式:调节器停止供电。除了备用电路和备份域外,寄存器和SRAM的内容全部丢失。

4.2
4.2.1

电源管理器
上电复位(POR)和掉电复位(PDR)
STM32内部有一个完整的上电复位(POR)和掉电复位(PDR)电路,当供电电压达到2V时系统既 能正常工作。
38/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。关 于上电复位和掉电复位的细节请参考数据手册的电气特性部分。 图5 上电复位和掉电复位的波形图

4.2.2

可编程电压监测器(PVD)
用户可以利用PVD对VDD 电压与电源控制寄存器(PWR_CR)中的PLS[2:0]位进行比较来监控电 源,这几位选择监控电压的阀值。 通过设置PVDE位来使能PVD。 电源控制/状态寄存器(PWR_CSR)中的PVDO标志用来表明VDD 是高于还是低于PVD的电压阀 值。该事件在内部连接到外部中断的第16线,如果该中断在外部中断寄存器中是使能的,该事 件就会产生中断。当VDD下降到PVD阀值以下和(或)当VDD上升到PVD阀值之上时,根据外部中 断第16线的上升/下降边沿触发设置,就会产生PVD中断。例如,这一特性可用于用于执行紧急 关闭任务。 图6 PVD的门限

39/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

4.3

低功耗模式
在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功 耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间 和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32F10xxx有三种低功耗模式: ● 睡眠模式(Cortex?-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时 钟(SysTick)等仍在运行) ● 停止模式(所有的时钟都已停止) ● 待机模式(1.8V电源关闭) 此外,在运行模式下,可以通过以下方式中的一种降低功耗: ● 降低系统时钟 ● 关闭APB和AHB总线上未被使用的外设时钟。 表8 低功耗模式一览
模式 睡眠 (SLEEP-NOW或 SLEEP-ON-EXIT) WFI WFE 进入 唤醒 任一中断 唤醒事件 对1.8V区域 时钟的影响 CPU时钟关,对 其他时钟和ADC 时钟无影响 对VDD区域 时钟的影响 无 电压调节器



停机

PDDS和LPDS位 任一外部中断 ( 在外 +SLEEPDEEP位 部 中 断 寄 存 器 中 设 +WFI或WFE 置) WKUP引脚的上升 PDDS位 沿、RTC闹钟事件、 +SLEEPDEEP位 NRST引脚上的外部 +WFI或WFE 复位、IWDG复位

开启或处于低功耗 模式(依据电源控制 寄 存 器 (PWR_CR) HSI 和HSE 的设定) 关闭所有 1.8V 区 的振荡器关 域的时钟 闭 关

待机

4.3.1

降低系统时钟
在 运 行 模 式 下 , 通 过 对 预 分 频 寄 存 器 进 行 编 程 , 可 以 降 低 任 意 一 个 系 统 时 钟(SYSCLK 、 HCLK、PCLK1、PCLK2)的速度。进入睡眠模式前,也可以利用预分频器来降低外设的时钟。 详见第6.3.2节:时钟配置寄存器(RCC_CFGR)。

4.3.2

外部时钟的控制
在运行模式下,任何时候都可以通过停止为外设和内存提供时钟(HCLK和PCLKx)来减少功耗。 为了在睡眠模式下更多地减少功耗,可在执行WFI或WFE指令前关闭所有外设的时钟。 通 过 设 置 AHB 外 设 时 钟 使 能 寄 存 器 (RCC_AHBENR) 、 APB2 外 设 时 钟 使 能 寄 存 器 (RCC_APB2ENR)和APB1外设时钟使能寄存器(RCC_APB1ENR)来开关各个外设模块的时钟。

4.3.3

睡眠模式
进入睡眠模式
通过执行WFI或WFE指令进入睡眠状态。根据Cortex?-M3系统控制寄存器中的SLEEPONEXIT 位的值,有两种选项可用于选择睡眠模式进入机制: ● SLEEP-NOW:如果SLEEPONEXIT位被清除,当WRI或WFE被执行时,微控制器立即进 入睡眠模式。 ● SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退 出时,微控制器就立即进入睡眠模式。 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
40/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR) 关于如何进入睡眠模式,更多的细节参考表9和表10。

STM32F10xxx参考手册

退出睡眠模式
如果执行WFI指令进入睡眠模式,任意一个被嵌套向量中断控制器响应的外设中断都能将系统从 睡眠模式唤醒。 如果执行WFE指令进入睡眠模式,则一旦发生唤醒事件时,微处理器都将从睡眠模式退出。唤 醒事件可以通过下述方式产生: ● 在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能,并且在 Cortex-M3系统控制寄存器中使能SEVONPEND位。当MCU从WFE中唤醒后,外设的中断 挂起位和外设的NVIC中断通道挂起位(在NVIC中断清除挂起寄存器中)必须被清除。 ● 配置一个外部或内部的EXIT线为事件模式。当MCU从WFE中唤醒后,因为与事件线对应的 挂起位未被设置,不必清除外设的中断挂起位或外设的NVIC中断通道挂起位。 该模式唤醒所需的时间最短,因为没有时间损失在中断的进入或退出上。 关于如何退出睡眠模式,更多的细节参考表9和表10。 表9 SLEEP-NOW模式
说明 在以下条件下执行WFI(等待中断)或WFE(等待事件)指令: 进入 – SLEEPDEEP = 0 和 – SLEEPONEXIT = 0 参考Cortex-M3系统控制寄存器。 如果执行WFI进入睡眠模式: 退出 中断:参考中断向量表(表54) 如果执行WFE进入睡眠模式: 唤醒事件:参考唤醒事件管理(第9.2.3节) 唤醒延时 无

SLEEP-NOW模式

表10

SLEEP-ON-EXIT模式
说明 在以下条件下执行WFI指令: – SLEEPDEEP = 0和 – SLEEPONEXIT = 1 参考Cortex?-M3系统控制寄存器 中断:参考中断向量表(表54) 无

SLEEP-ON_EXIT模式

进入

退出 唤醒延时

4.3.4

停止模式
停止模式是在Cortex?-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压 调节器可运行在正常或低功耗模式。此时在1.8V供电区域的的所有时钟都被停止,PLL、HSI和 HSE RC振荡器的功能被禁止,SRAM和寄存器内容被保留下来。 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。

进入停止模式
关于如何进入停止模式,详见表11。 在停止模式下,通过设置电源控制寄存器(PWR_CR)的LPDS位使内部调节器进入低功耗模式, 能够降低更多的功耗。 如果正在进行闪存编程,直到对内存访问完成,系统才进入停止模式。 如果正在进行对APB的访问,直到对APB访问完成,系统才进入停止模式。 可以通过对独立的控制位进行编程,可选择以下功能:
41/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

● 独立看门狗(IWDG):可通过写入看门狗的键寄存器或硬件选择来启动IWDG。一旦启动了 独立看门狗,除了系统复位,它不能再被停止。详见17.3节。 ● 实时时钟(RTC):通过备份域控制寄存器 (RCC_BDCR)的RTCEN位来设置。 ● 内部RC振荡器(LSI RC):通过控制/状态寄存器 (RCC_CSR)的LSION位来设置。 ● 外部32.768kHz振荡器(LSE):通过备份域控制寄存器 (RCC_BDCR)的LSEON位设置。 在停止模式下,如果在进入该模式前ADC和DAC没有被关闭,那么这些外设仍然消耗电流。通 过设置寄存器ADC_CR2的ADON位和寄存器DAC_CR的ENx位为0可关闭这2个外设。

退出停止模式
关于如何退出停止模式,详见下表。 当一个中断或唤醒事件导致退出停止模式时,HSI RC振荡器被选为系统时钟。 当电压调节器处于低功耗模式下,当系统从停止模式退出时,将会有一段额外的启动延时。如 果在停止模式期间保持内部调节器开启,则退出启动时间会缩短,但相应的功耗会增加。 表11 停止模式
说明 在以下条件下执行WFI(等待中断)或WFE(等待事件)指令: – 设置Cortex-M3系统控制寄存器中的SLEEPDEEP位 进入 – 清除电源控制寄存器(PWR_CR)中的PDDS位 – 通过设置PWR_CR中LPDS位选择电压调节器的模式 注:为了进入停止模式,所有的外部中断的请求位(挂起寄存器(EXTI_PR))和RTC的闹钟标志 都必须被清除,否则停止模式的进入流程将会被跳过,程序继续运行。 如果执行WFI进入停止模式: 退出 设置任一外部中断线为中断模式(在NVIC中必须使能相应的外部中断向量)。参见中断向量 表(表54)。 如果执行WFE进入停止模式: 设置任一外部中断线为事件模式。参见唤醒事件管理(第9.2.3节)。 唤醒延时 HSI RC唤醒时间 + 电压调节器从低功耗唤醒的时间。

停止模式

4.3.5

待机模式
待机模式可实现系统的最低功耗。该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个 1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份 的寄存器和待机电路维持供电(见图4)。

进入待机模式
关于如何进入待机模式,详见表12。 可以通过设置独立的控制位,选择以下待机模式的功能: ● 独立看门狗(IWDG):可通过写入看门狗的键寄存器或硬件选择来启动IWDG。一旦启动了 独立看门狗,除了系统复位,它不能再被停止。详见17.3节。 ● 实时时钟(RTC):通过备用区域控制寄存器(RCC_BDCR)的RTCEN位来设置。 ● 内部RC振荡器(LSI RC):通过控制/状态寄存器(RCC_CSR)的LSION位来设置。 ● 外部32.768kHz振荡器(LSE):通过备用区域控制寄存器(RCC_BDCR)的LSEON位设置。

退出待机模式
当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事件的上升沿发 生时(见图154:简化的RTC框图),微控制器从待机模式退出。从待机唤醒后,除了电源控制/状 态寄存器(PWR_CSR)(见第4.4.2节),所有寄存器被复位。 从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚、读取复位向量等)。电源 控制/状态寄存器(PWR_CSR)(见第4.4.2节)将会指示内核由待机状态退出。 关于如何退出待机模式,详见下表。
42/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR) 表12 待机模式
说明 在以下条件下执行WFI(等待中断)或WFE(等待事件)指令: 进入 – 设置Cortex?-M3系统控制寄存器中的SLEEPDEEP位 – 设置电源控制寄存器(PWR_CR)中的PDDS位 – 清除电源控制/状态寄存器(PWR_CSR)中的WUF位 退出 唤醒延时

STM32F10xxx参考手册

待机模式

WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位。 复位阶段时电压调节器的启动。

待机模式下的输入/输出端口状态
在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚: ● 复位引脚(始终有效) ● 当被设置为防侵入或校准输出时的TAMPER引脚 ● 被使能的唤醒引脚

调试模式
默认情况下,如果在进行调试微处理器时,使微处理器进入停止或待机模式,将失去调试连 接。这是因为Cortex?-M3的内核失去了时钟。 然而,通过设置DBGMCU_CR寄存器中的某些配置位,可以在使用低功耗模式下调试软件。更 多的细节请参考第29.16.1节:低功耗模式的调试支持。

4.3.6

低功耗模式下的自动唤醒(AWU)
RTC可以在不需要依赖外部中断的情况下唤醒低功耗模式下的微控制器(自动唤醒模式)。RTC提 供一个可编程的时间基数,用于周期性从停止或待机模式下唤醒。通过对备份区域控制寄存器 (RCC_BDCR)的RTCSEL[1:0]位的编程,三个RTC时钟源中的二个时钟源可以选作实现此功 能。 ● 低功耗32.768kHz外部晶振(LSE) 该时钟源提供了一个低功耗且精确的时间基准。(在典型情形下消耗小于1?A) ● 低功耗内部RC振荡器(LSI RC) 使用该时钟源,节省了一个32.768kHz晶振的成本。但是RC振荡器将少许增加电源消耗。 为了用RTC闹钟事件将系统从停止模式下唤醒,必须进行如下操作: ● 配置外部中断线17为上升沿触发。 ● 配置RTC使其可产生RTC闹钟事件。 如果要从待机模式中唤醒,不必配置外部中断线17。

43/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

4.4
4.4.1

电源控制寄存器
可以用半字(16位)或字(32位)的方式操作这些外设寄存器。

电源控制寄存器(PWR_CR)
地址偏移:0x00 复位值:0x0000 0000 (从待机模式唤醒时清除)

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

保留
15 14 13 12 11 10 9 8
DBP rw
位 31:9 位8 保留。始终读为0。 DBP:取消后备区域的写保护 在复位后,RTC和后备寄存器处于被保护状态以防意外写入。设置这位允许写入这些寄存器。 0:禁止写入RTC和后备寄存器 1:允许写入RTC和后备寄存器 注:如果RTC的时钟是HSE/128,该位必须保持为’1’。 位 7:5 PLS[2:0]:PVD电平选择 这些位用于选择电源电压监测器的电压阀值 000:2.2V 001:2.3V 010:2.4V 011:2.5V 位4 100:2.6V 101:2.7V 110:2.8V 111:2.9V

7

6
PLS[2:0]

5

4
PVDE

3
CSBF

2
CWUF

1
PDDS rw

0
LPDS rw

保留

rw

rw

rw

rw

rc_w1 rc_w1

注:详细说明参见数据手册中的电气特性部分。 PVDE:电源电压监测器(PVD)使能 0:禁止PVD 1:开启PVD 位3 CSBF:清除待机位 始终读出为0 0:无功效 1:清除SBF待机位(写) 位2 CWUF:清除唤醒位 始终读出为0 0:无功效 1:2个系统时钟周期后清除WUF唤醒位(写) 位1 PDDS:掉电深睡眠 与LPDS位协同操作 0:当CPU进入深睡眠时进入停机模式,调压器的状态由LPDS位控制。 1:CPU进入深睡眠时进入待机模式。 位0 LPDS:深睡眠下的低功耗 PDDS=0时,与PDDS位协同操作 0:在停机模式下电压调压器开启 1:在停机模式下电压调压器处于低功耗模式

44/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

4.4.2

电源控制/状态寄存器(PWR_CSR)
地址偏移:0x04 复位值:0x0000 0000 (从待机模式唤醒时不被清除) 与标准的APB读相比,读此寄存器需要额外的APB周期

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

保留
15 14 13 12 11 10 9 8
EWUP rw
位31:9 位8 保留。始终读为0。 EWUP:使能WKUP引脚 0:WKUP引脚为通用I/O。WKUP引脚上的事件不能将CPU从待机模式唤醒 1:WKUP引脚用于将CPU从待机模式唤醒,WKUP引脚被强置为输入下拉的配置(WKUP引脚 上的上升沿将系统从待机模式唤醒) 注:在系统复位时清除这一位。 位 7:3 位2 保留。始终读为0。 PVDO:PVD输出 当PVD被PVDE位使能后该位才有效 0:VDD/VDDA高于由PLS[2:0]选定的PVD阀值 1:VDD/VDDA低于由PLS[2:0]选定的PVD阀值 注:在待机模式下PVD被停止。因此,待机模式后或复位后,直到设置PVDE位之前,该位为 0。 位1 SBF:待机标志 该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的 CSBF位清除。 0:系统不在待机模式 1:系统进入待机模式 位0 WUF:唤醒标志 该位由硬件设置,并只能由POR/PDR(上电/掉电复位)或设置电源控制寄存器(PWR_CR)的 CWUF位清除。 0:没有发生唤醒事件 1:在WKUP引脚上发生唤醒事件或出现RTC闹钟事件。 注:当WKUP引脚已经是高电平时,在(通过设置EWUP位)使能WKUP引脚时,会检测到一个额外的 事件。

7

6

5

4

3

2
PVDO r

1
SBF r

0
WUF r

保留

保留

45/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

电源控制(PWR)

STM32F10xxx参考手册

4.4.3

PWR寄存器地址映像
以下表格列出所有PWR寄存器。 表13 PWR寄存器地址映像和复位值

偏移 000h

寄存器 PWR_CR 复位值

保留

0 0 0 0 0 0 0 0 0 EWUP 保留 保留 PVDO SBF WUF 0 0 0
46/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

004h

PWR_CSR 复位值
关于寄存器的起始地址,参见表1。

0

PVDE CSBF CWUF PDDS LPDS

DBP

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 PLS [2:0]

备份寄存器(BKP)

STM32F10xxx参考手册

5

备份寄存器(BKP)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列。

5.1

BKP简介
备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域 里,当VDD电源被切断,他们仍然由VBAT维持供电。当系统在待机模式下被唤醒,或系统复位或 电源复位时,他们也不会被复位。 此外,BKP控制寄存器用来管理侵入检测和RTC校准功能。 复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操 作。执行以下操作可以使能对备份寄存器和RTC的访问。 ● 通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟 ● 电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。

5.2

BKP特性
● 20字节数据后备寄存器(中容量和小容量产品),或84字节数据后备寄存器(大容量和互联型 产品) ● 用来管理防侵入检测并具有中断功能的状态/控制寄存器 ● 用来存储RTC校验值的校验寄存器。 ● 在PC13引脚(当该引脚不用于侵入检测时)上输出RTC校准时钟,RTC闹钟脉冲或者秒脉冲

5.3
5.3.1

BKP功能描述
侵入检测
当TAMPER引脚上的信号从0变成1或者从1变成0(取决于备份控制寄存器BKP_CR的TPAL位), 会产生一个侵入检测事件。侵入检测事件将所有数据备份寄存器内容清除。 然而为了避免丢失侵入事件,侵入检测信号是边沿检测的信号与侵入检测允许位的逻辑与,从 而在侵入检测引脚被允许前发生的侵入事件也可以被检测到。 ● 当TPAL=0时:如果在启动侵入检测TAMPER引脚前(通过设置TPE位)该引脚已经为高电 平,一旦启动侵入检测功能,则会产生一个额外的侵入事件(尽管在TPE位置’1’后并没有出 现上升沿)。 ● 当TPAL=1时:如果在启动侵入检测引脚TAMPER前(通过设置TPE位)该引脚已经为低电 平,一旦启动侵入检测功能,则会产生一个额外的侵入事件(尽管在TPE位置’1’后并没有出 现下降沿)。 设置BKP_CSR寄存器的TPIE位为’1’,当检测到侵入事件时就会产生一个中断。 在一个侵入事件被检测到并被清除后,侵入检测引脚TAMPER应该被禁止。然后,在再次写入 备份数据寄存器前重新用TPE位启动侵入检测功能。这样,可以阻止软件在侵入检测引脚上仍 然有侵入事件时对备份数据寄存器进行写操作。这相当于对侵入引脚TAMPER进行电平检测。

注:

当VDD电源断开时,侵入检测功能仍然有效。为了避免不必要的复位数据备份寄存器,TAMPER 引脚应该在片外连接到正确的电平。
47/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

备份寄存器(BKP)

STM32F10xxx参考手册

5.3.2

RTC校准
为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存 器(BKP_RTCCR)的CCO位来开启这一功能。 通过配置CAL[6:0]位,此时钟可以最多减慢121ppm。 关于RTC校准和如何提高精度,请看AN2604“STM32F101xx和STM32F103xx的RTC校准”

5.4

BKP寄存器描述
关于在寄存器描述里面所用到的缩写,可参考1.1节。 可以用半字(16位)或字(32位)的方式操作这些外设寄存器。

5.4.1

备份数据寄存器x(BKP_DRx) (x = 1 … 10)
地址偏移:0x04 到 0x28,0x40到0xBC 复位值:0x0000 0000

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

D[15:0] rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

位15:0

D[15:0]:备份数据 这些位可以被用来写入用户数据。 注意:BKP_DRx寄存器不会被系统复位、电源复位、从待机模式唤醒所复位。 它们可以由备份域复位来复位或(如果侵入检测引脚TAMPER功能被开启时)由侵入引脚事件复 位。

5.4.2

RTC时钟校准寄存器(BKP_RTCCR)
地址偏移:0x2C 复位值:0x0000 0000

15

14

13 保留

12

11

10

9 ASOS rw

8 ASOE rw

7 CCO rw

6

5

4

3 CAL[6:0]

2

1

0

rw

rw

rw

rw

rw

rw

rw

位15:8 位9

保留,始终读为0。 ASOS:闹钟或秒输出选择(Alarm or second output selection) 当设置了ASOE位,ASOS位可用于选择在TAMPER引脚上输出的是RTC秒脉冲还是闹钟脉冲 信号。 0:输出RTC闹钟脉冲 1:输出秒脉冲 注:该位只能被后备区的复位所清除

位8

ASOE:允许输出闹钟或秒脉冲(Alarm or second output enable) 根据ASOS位的设置,该位允许RTC闹钟或秒脉冲输出到TAMPER引脚上。 输出脉冲的宽度为一个RTC时钟的周期。设置了ASOE位时不能开启TAMPER的功能。 注:该位只能被后备区的复位所清除

位7

CCO:校准时钟输出(Calibration clock output) 0:无影响 1:此位置1可以在侵入检测引脚输出经64分频后的RTC时钟。当CCO位置1时,必须关闭侵入 检测功能以避免检测到无用的侵入信号。 注:当VDD供电断开时,该位被清除。

48/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

备份寄存器(BKP)
位6:0 CAL[6:0]:校准值(Calibration value)

STM32F10xxx参考手册
校准值表示在每220个时钟脉冲内将有多少个时钟脉冲被跳过。这可以用来对RTC进行校准,以 1000000/220ppm的比例减慢时钟。 RTC时钟可以被减慢0~121ppm。

5.4.3

备份控制寄存器(BKP_CR)
偏移地址:0x30 复位值:0x0000 0000

15

14

13

12

11

10

9 保留

8

7

6

5

4

3

2

1 TPAL rw

0 TPE rw

位15:2 位1

保留,始终读为0。 TPAL:侵入检测TAMPER引脚有效电平(TAMPER pin active level) 0:侵入检测TAMPER引脚上的高电平会清除所有数据备份寄存器(如果TPE位为1) 1:侵入检测TAMPER引脚上的低电平会清除所有数据备份寄存器(如果TPE位为1)

位0

TPE:启动侵入检测TAMPER引脚(TAMPER pin enable) 0:侵入检测TAMPER引脚作为通用IO口使用 1:开启侵入检测引脚作为侵入检测使用

注:

同时设置TPAL和TPE位总是安全的。然而,同时清除两者会产生一个假的侵入事件。因此, 推荐只在TPE为0时才改变TPAL位的状态。

5.4.4

备份控制/状态寄存器(BKP_CSR)
偏移地址:0x34 复位值:0x0000 0000

15

14

13 保留

12

11

10

9 TIF r

8 TEF r

7

6

5 保留

4

3

2 TPIE rw

1 CTI rw

0 CTE rw

位15:10 位9

保留,始终读为0。 TIF:侵入中断标志(Tamper interrupt flag) 当检测到有侵入事件且TPIE位为1时,此位由硬件置1。通过向CTI位写1来清除此标志位(同时 也清除了中断)。如果TPIE位被清除,则此位也会被清除。 0:无侵入中断 1:产生侵入中断 注意:仅当系统复位或由待机模式唤醒后才复位该位

位8

TEF:侵入事件标志(Tamper event flag) 当检测到侵入事件时此位由硬件置1。通过向CTE位写1可清除此标志位 0:无侵入事件 1:检测到侵入事件 注:侵入事件会复位所有的BKP_DRx寄存器。只要TEF为1,所有的BKP_DRx寄存器就一直保 持复位状态。当此位被置1时,若对BKP_DRx进行写操作,写入的值不会被保存。

位7:3 位2

保留,始终读为0。 TPIE:允许侵入TAMPER引脚中断(TAMPER pin interrupt enable) 0:禁止侵入检测中断 1:允许侵入检测中断(BKP_CR寄存器的TPE位也必须被置1) 注1:侵入中断无法将系统内核从低功耗模式唤醒。 注2:仅当系统复位或由待机模式唤醒后才复位该位。

49/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

备份寄存器(BKP)
位1 CTI:清除侵入检测中断(Clear tamper interrupt) 此位只能写入,读出值为0。 0:无效 1:清除侵入检测中断和TIF侵入检测中断标志 位0 CTE:清除侵入检测事件(Clear tamper event) 此位只能写入,读出值为0。 0:无效 1:清除TEF侵入检测事件标志(并复位侵入检测器)。

STM32F10xxx参考手册

50/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

备份寄存器(BKP)

STM32F10xxx参考手册

5.4.5

BKP寄存器映像
BKP寄存器是16位的可寻址寄存器。 表14 BKP寄存器映像和复位值

偏移 000h

寄存器

004h

BKP_DR1 复位值

008h

BKP_DR2 复位值

00Ch

BKP_DR3 复位值

010h

BKP_DR4 复位值

014h

BKP_DR5 复位值

018h

BKP_DR6 复位值

01Ch

BKP_DR7 复位值

020h

BKP_DR8 复位值

024h

BKP_DR9 复位值

028h

BKP_DR10 复位值

ASOS ASOE CCO

02Ch

BKP_RTCCR 复位值

030h

RTC_CR 复位值

保留 TIF TFE

034h

RTC_CSR 复位值

保留
保留 保留

保留

0 0

038h 03Ch 040h
BKP_DR11 复位值

保留

D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

TPIE CTI CTE 0 0 0
51/754

TPAL TPE 0 0

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
保留

保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留

D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CAL[6:0]

0 0 0 0 0 0 0 0 0 0

备份寄存器(BKP)
偏移 044h
寄存器 BKP_DR12 复位值

STM32F10xxx参考手册

048h

BKP_DR13 复位值

04Ch

BKP_DR14 复位值

050h

BKP_DR15 复位值

054h

BKP_DR16 复位值

058h

BKP_DR17 复位值

05Ch

BKP_DR18 复位值

060h

BKP_DR19 复位值

064h

BKP_DR20 复位值

068h

BKP_DR21 复位值

06Ch

BKP_DR22 复位值

070h

BKP_DR23 复位值

074h

BKP_DR24 复位值

078h

BKP_DR25 复位值

07Ch

BKP_DR26 复位值

080h

BKP_DR27 复位值

084h

BKP_DR28 复位值

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
52/754

备份寄存器(BKP)
偏移 088h
寄存器 BKP_DR29 复位值

STM32F10xxx参考手册

08Ch

BKP_DR30 复位值

090h

BKP_DR31 复位值

094h

BKP_DR32 复位值

098h

BKP_DR33 复位值

09Ch

BKP_DR34 复位值

0A0h

BKP_DR35 复位值

0A4h

BKP_DR36 复位值

0A8h

BKP_DR37 复位值

0ACh

BKP_DR38 复位值

0B0h

BKP_DR39 复位值

0B4h

BKP_DR40 复位值

0B8h

BKP_DR41 复位值

0BCh

BKP_DR42 复位值

有关寄存器的起始地址,请参考表1。

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 保留 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D[15:0] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53/754

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

6

小容量、中容量和大容量产品的复位和时钟控制(RCC)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 本章内容适用于小容量、中容量和大容量产品,互联型产品的相关内容在下一章讨论。

6.1
6.1.1

复位
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。

系统复位
除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统 复位将复位所有寄存器至它们的复位状态。 当发生以下任一事件时,产生一个系统复位: 1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位 可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

软件复位
通过将Cortex?-M3中断应用和复位控制寄存器中的SYSRESETREQ位置’1’,可实现软件复 位。请参考Cortex?-M3技术参考手册获得进一步信息。

低功耗管理复位
在以下两种情况下可产生低功耗管理复位: 在进入待机模式时产生低功耗管理复位: 通过将用户选择字节中的nRST_STDBY位置’1’将使能该复位。这时,即使执行了进入待 机模式的过程,系统将被复位而不是进入待机模式。 2. 在进入停止模式时产生低功耗管理复位: 通过将用户选择字节中的nRST_STOP位置’1’将使能该复位。这时,即使执行了进入停机 模式的过程,系统将被复位而不是进入停机模式。 关于用户选择字节的进一步信息,请参考STM32F10xxx闪存编程手册。 1.

6.1.2

电源复位
当以下事件中之一发生时,产生电源复位: 1. 上电/掉电复位(POR/PDR复位) 2. 从待机模式中返回 电源复位将复位除了备份区域外的所有寄存器。(见图4) 图中复位源将最终作用于RESET引脚,并在复位过程中保持低电平。复位入口矢量被固定在地 址0x0000_0004。更多细节,参阅表55:其它STM32F10xxx产品(小容量、中容量和大容量)的 向量表。
54/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

芯片内部的复位信号会在NRST引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有 至少20μs的脉冲延时;当NRST引脚被拉低产生外部复位时,它将产生复位脉冲。 图7 复位电路

6.1.3

备份域复位
备份区域拥有两个专门的复位,它们只影响备份区域(见图4)。 当以下事件中之一发生时,产生备份区域复位。 1. 2. 软件复位,备份区域复位可由设置备份域控制寄存器 (RCC_BDCR)(见6.3.9节)中的 BDRST位产生。 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。

6.2

时钟
三种不同的时钟源可被用来驱动系统时钟(SYSCLK): ● HSI振荡器时钟 ● HSE振荡器时钟 ● PLL时钟 这些设备有以下2种二级时钟源: ● 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/ 待机模式下自动唤醒系统。 ● 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。 当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。

55/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC) 图8 时钟树

STM32F10xxx参考手册

1.当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是64MHz。 2.对于内部和外部时钟源的特性,请参考相应产品数据手册中“电气特性”章节。

用户可通过多个预分频器配置AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和 APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。SDIO接口的时钟频率固定 为HCLK/2。 RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick 控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟 由高速APB2时钟经2、4、6或8分频后获得。 定时器时钟频率分配由硬件按以下2种情况自动设置: 1. 2. 如果相应的APB预分频系数是1,定时器的时钟频率与所在APB总线频率一致。 否则,定时器的时钟频率被设为与其相连的APB总线频率的2倍。
56/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

FCLK是Cortex?-M3的自由运行时钟。详情见ARM的Cortex?-M3技术参考手册。

6.2.1

HSE时钟
高速外部时钟信号(HSE)由以下两种时钟源产生: ● HSE外部晶体/陶瓷谐振器 ● HSE用户外部时钟 为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠 近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。 图9 HSE/LSE时钟源
硬件配置

外部时钟

晶体/陶瓷谐振器

外部时钟源(HSE旁路)
在这个模式里,必须提供外部时钟。它的频率最高可达25MHz。用户可通过设置在时钟控制寄 存器中的HSEBYP和HSEON位来选择这一模式。外部时钟信号(50%占空比的方波、正弦波或 三角波)必须连到SOC_IN引脚,同时保证OSC_OUT引脚悬空。见图9。

外部晶体/陶瓷谐振器(HSE晶体)
4~16Mz外部振荡器可为系统提供更为精确的主时钟。相关的硬件配置可参考图9,进一步信息 可参考数据手册的电气特性部分。 在时钟控制寄存器RCC_CR中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时,直 到这一位被硬件置’1’,时钟才被释放出来。如果在时钟中断寄存器RCC_CIR中允许产生中断, 将会产生相应中断。 HSE晶体可以通过设置时钟控制寄存器里RCC_CR中的HSEON位被启动和关闭。

6.2.2

HSI时钟
HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。 HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振 荡器短。然而,即使在校准之后它的时钟频率精度仍较差。

校准
制造工艺决定了不同芯片的RC振荡器频率会不同,这就是为什么每个芯片的HSI时钟频率在出 厂前已经被ST校准到1%(25°C)的原因。系统复位时,工厂校准值被装载到时钟控制寄存器的 HSICAL[7:0]位。 如果用户的应用基于不同的电压或环境温度,这将会影响RC振荡器的精度。可以通过时钟控制 寄存器里的HSITRIM[4:0]位来调整HSI频率。
57/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

时钟控制寄存器中的HSIRDY位用来指示HSI RC振荡器是否稳定。在时钟启动过程中,直到这 一位被硬件置’1’,HSI RC输出时钟才被释放。HSI RC可由时钟控制寄存器中的HSION位来启 动和关闭。 如果HSE晶体振荡器失效,HSI时钟会被作为备用时钟源。参考6.2.7节时钟安全系统。

6.2.3

PLL
内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。参考图8和时钟控制寄存器。 PLL的设置(选择HIS振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子)必须在其被激 活前完成。一旦PLL被激活,这些参数就不能被改动。 如果PLL中断在时钟中断寄存器里被允许,当PLL准备就绪时,可产生中断申请。 如果需要在应用中使用USB接口,PLL必须被设置为输出48或72MHZ时钟,用于提供48MHz的 USBCLK时钟。

6.2.4

LSE时钟
LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供 一个低功耗且精确的时钟源。 LSE晶体通过在备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。 在备份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶体振荡是否稳定。在启动阶段,直 到这个位被硬件置’1’后,LSE时钟信号才被释放出来。如果在时钟中断寄存器里被允许,可产 生中断申请。

外部时钟源(LSE旁路)
在这个模式里必须提供一个32.768kHz频率的外部时钟源。你可以通过设置在备份域控制寄存器 (RCC_BDCR)里的LSEBYP和LSEON位来选择这个模式。具有50%占空比的外部时钟信号(方 波、正弦波或三角波)必须连到OSC32_IN引脚,同时保证OSC32_OUT引脚悬空,见图9。

6.2.5

LSI时钟
LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和 自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。进一步信息请参考数 据手册中有关电气特性部分。 LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。 在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。在启动阶段,直 到这个位被硬件设置为’1’后,此时钟才被释放。如果在时钟中断寄存器(RCC_CIR)里被允许, 将产生LSI中断申请。

注意: 只有大容量和互联型产品可以进行LSI校准

LSI校准
可以通过校准内部低速振荡器LSI来补偿其频率偏移,从而获得精度可接受的RTC时间基数,以 及独立看门狗(IWDG)的超时时间(当这些外设以LSI为时钟源)。 校准可以通过使用TIM5的输入时钟(TIM5_CLK)测量LSI时钟频率实现。测量以HSE的精度为保 证,软件可以通过调整RTC的20位预分频器来获得精确的RTC时钟基数,以及通过计算得到精 确的独立看门狗(IWDG)的超时时间。 LSI校准步骤如下: 1. 2. 3. 4. 打开TIM5,设置通道4为输入捕获模式; 设置AFIO_MAPR的TIM5_CH4_IREMAP位为’1’,在内部把LSI连接到TIM5的通道4; 通过TIM5的捕获/比较4事件或者中断来测量LSI时钟频率; 根据测量结果和期望的RTC时间基数和独立看门狗的超时时间,设置20位预分频器。

58/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

6.2.6

系统时钟(SYSCLK)选择
系统复位后,HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它 将不能被停止。 只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时 钟源的切换才会发生。在被选择时钟源没有就绪时,系统时钟的切换不会发生。直至目标时钟 源就绪,才发生切换。 在时钟控制寄存器(RCC_CR)里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统 时钟。

6.2.7

时钟安全系统(CSS)
时钟安全系统可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被 使能,并在HSE时钟关闭后关闭。 如果HSE时钟发生故障,HSE振荡器被自动关闭,时钟失效事件将被送到高级定时器(TIM1和 TIM8)的刹车输入端,并产生时钟安全中断CSSI,允许软件完成营救操作。此CSSI中断连接到 Cortex?-M3的NMI中断(不可屏蔽中断)。

注意: 一旦CSS被激活,并且HSE时钟出现故障,CSS中断就产生,并且NMI也自动产生。NMI将被不 断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器 (RCC_CIR)里的CSSC位来清除CSS中断。
如果HSE振荡器被直接或间接地作为系统时钟,(间接的意思是:它被作为PLL输入时钟,并且 PLL时钟被作为系统时钟),时钟故障将导致系统时钟自动切换到HSI振荡器,同时外部HSE振荡 器被关闭。在时钟失效时,如果HSE振荡器时钟(被分频或未被分频)是用作系统时钟的PLL的输 入时钟,PLL也将被关闭。

6.2.8

RTC时钟
通 过 设 置 备 份 域 控 制 寄 存 器 (RCC_BDCR) 里 的 RTCSEL[1:0] 位 , RTCCLK 时 钟 源 可 以 由 HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。 LSE时钟在备份域里,但HSE和LSI时钟不是。因此: ● 如果LSE被选为RTC时钟: ─ ─ ─ ─ 只要VBAT维持供电,尽管VDD供电被切断,RTC仍继续工作。 如果VDD供电被切断, AWU状态不能被保证。有关LSI校准,详见6.2.5节LSI时钟。 如果VDD供电被切断或内部电压调压器被关闭(1.8V域的供电被切断),则RTC状态不确 定。 必须设置电源控制寄存器(见4.4.1节)的DPB位(取消后备区域的写保护)为’1’。 ● 如果LSI被选为自动唤醒单元(AWU)时钟: ● 如果HSE时钟128分频后作为RTC时钟:

6.2.9

看门狗时钟
如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关 闭。在LSI振荡器稳定后,时钟供应给IWDG。

6.2.10

时钟输出
微控制器允许输出时钟信号到外部MCO引脚。 相应的GPIO端口寄存器必须被配置为相应功能。以下四个时钟信号可被选作MCO时钟: ● SYSCLK ● HSI ● HSE
59/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC) ● 除2的PLL时钟 时钟的选择由时钟配置寄存器(RCC_CFGR)中的MCO[2:0]位控制。

STM32F10xxx参考手册

6.3
6.3.1

RCC寄存器描述
请参考第1章中有关寄存器描述中用到的缩写。

时钟控制寄存器(RCC_CR)
偏移地址: 0x00 复位值: 0x000 XX83,X代表未定义 访问: 无等待状态, 字, 半字 和字节访问

31

30

29 保留

28

27

26

15

14

13

12

11

10

25 24 PLL PLLON RDY r rw 9 8

23

22 保留

21

20

7

6

5

4

19 CSS ON rw 3

18 HSE BYP rw 2 保留

HSICAL[7:0] r r
位25

HSITRIM[4:0] r r r rw rw rw rw rw

r
位31:26

r

r

17 16 HSE HSE RDY ON r rw 1 0 HSI HSION RDY r rw

保留,始终读为0。 PLLRDY:PLL时钟就绪标志 (PLL clock ready flag) PLL锁定后由硬件置’1’。 0:PLL未锁定; 1:PLL锁定。

位24

PLLON:PLL使能 (PLL enable) 由软件置’1’或清零。 当进入待机和停止模式时,该位由硬件清零。当PLL时钟被用作或被选择将要作为系统时钟 时,该位不能被清零。 0:PLL关闭; 1:PLL使能。

位23:20 位19

保留,始终读为0。 CSSON:时钟安全系统使能 (Clock security system enable) 由软件置’1’或清零以使能时钟监测器。 0:时钟监测器关闭; 1:如果外部4-16MHz振荡器就绪,时钟监测器开启。

位18

HSEBYP:外部高速时钟旁路 (External high-speed clock bypass) 在调试模式下由软件置’1’或清零来旁路外部晶体振荡器。只有在外部4-16MHz振荡器关闭的情 况下,才能写入该位。 0:外部4-16MHz振荡器没有旁路; 1:外部4-16MHz外部晶体振荡器被旁路。

位17

HSERDY:外部高速时钟就绪标志 (External high-speed clock ready flag) 由硬件置’1’来指示外部4-16MHz振荡器已经稳定。在HSEON位清零后,该位需要6个外部425MHz振荡器周期清零。 0:外部4-16MHz振荡器没有就绪; 1:外部4-16MHz振荡器就绪。

60/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位16 HSEON:外部高速时钟使能 (External high-speed clock enable) 由软件置’1’或清零。

STM32F10xxx参考手册

当进入待机和停止模式时,该位由硬件清零,关闭4-16MHz外部振荡器。当外部4-16MHz振荡 器被用作或被选择将要作为系统时钟时,该位不能被清零。 0:HSE振荡器关闭; 1:HSE振荡器开启。 位15:8 位7:3 HSICAL[7:0]:内部高速时钟校准 (Internal high-speed clock calibration) 在系统启动时,这些位被自动初始化 HSITRIM[4:0]:内部高速时钟调整 (Internal high-speed clock trimming) 由软件写入来调整内部高速时钟,它们被叠加在HSICAL[5:0]数值上。 这些位在HSICAL[7:0]的基础上,让用户可以输入一个调整数值,根据电压和温度的变化调整 内部HSI RC振荡器的频率。 默认数值为16,可以把HSI调整到8MHz±1%;每步HSICAL的变化调整约40kHz。 位2 位1 保留,始终读为0。 HSIRDY:内部高速时钟就绪标志 (Internal high-speed clock ready flag) 由硬件置’1’来指示内部8MHz振荡器已经稳定。在HSION位清零后,该位需要6个内部8MHz振 荡器周期清零。 0:内部8MHz振荡器没有就绪; 1:内部8MHz振荡器就绪。 位0 HSION:内部高速时钟使能 (Internal high-speed clock enable) 由软件置’1’或清零。 当从待机和停止模式返回或用作系统时钟的外部4-16MHz振荡器发生故障时,该位由硬件置’1’ 来启动内部8MHz的RC振荡器。当内部8MHz振荡器被直接或间接地用作或被选择将要作为系 统时钟时,该位不能被清零。 0:内部8MHz振荡器关闭; 1:内部8MHz振荡器开启。

6.3.2

时钟配置寄存器(RCC_CFGR)
偏移地址: 0x04 复位值: 0x0000 0000 访问: 0到2个等待周期,字,半字和字节访问 只有当访问发生在时钟切换时,才会插入1或2个等待周期。

31

30

29 保留

28

27

26

25 MCO[2:0]

24

23 保留

rw 15 14 13 12
PPRE2[2:0]

rw 9
PPRE1[2:0]

rw 8 7

22 USB PRE rw 6

21

20

19

18

17
PLL XTPRE

PLLMUL[3:0] rw 5 rw 4 rw 3 rw 2

rw 1

16 PLL SRC rw 0

11

10

ADCPRE[1:0]

HPRE[3:0]

SWS[1:0]

SW[1:0]

rw

rw

rw
位31:27

rw

rw

rw

rw

rw

rw

rw

rw

rw

r

r

rw

rw

保留,始终读为0。

61/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位26:24 MCO: 微控制器时钟输出 (Microcontroller clock output) 由软件置’1’或清零。 0xx:没有时钟输出; 100:系统时钟(SYSCLK)输出; 101:内部RC振荡器时钟(HSI)输出; 110:外部振荡器时钟(HSE)输出; 111:PLL时钟2分频后输出。 注意:- 该时钟输出在启动和切换MCO时钟源时可能会被截断。

STM32F10xxx参考手册

- 在系统时钟作为输出至MCO引脚时,请保证输出时钟频率不超过50MHz (I/O口最高频率)。 位22 USBPRE:USB预分频 (USB prescaler) 由软件置’1’或清’0’来产生48MHz的USB时钟。在RCC_APB1ENR寄存器中使能USB时钟之 前,必须保证该位已经有效。如果USB时钟被使能,该位不能被清零。 0:PLL时钟1.5倍分频作为USB时钟 1:PLL时钟直接作为USB时钟 位21:18 PLLMUL:PLL倍频系数 (PLL multiplication factor) 由软件设置来确定PLL倍频系数。只有在PLL关闭的情况下才可被写入。 注意:PLL的输出频率不能超过72MHz 0000:PLL 2倍频输出 0001:PLL 3倍频输出 0010:PLL 4倍频输出 0011:PLL 5倍频输出 0100:PLL 6倍频输出 0101:PLL 7倍频输出 0110:PLL 8倍频输出 0111:PLL 9倍频输出 位17 1000:PLL 10倍频输出 1001:PLL 11倍频输出 1010:PLL 12倍频输出 1011:PLL 13倍频输出 1100:PLL 14倍频输出 1101:PLL 15倍频输出 1110:PLL 16倍频输出 1111:PLL 16倍频输出

PLLXTPRE:HSE分频器作为PLL输入 (HSE divider for PLL entry) 由软件置’1’或清’0’来分频HSE后作为PLL输入时钟。只能在关闭PLL时才能写入此位。 0:HSE不分频 1:HSE 2分频

位16

PLLSRC:PLL输入时钟源 (PLL entry clock source) 由软件置’1’或清’0’来选择PLL输入时钟源。只能在关闭PLL时才能写入此位。 0:HSI振荡器时钟经2分频后作为PLL输入时钟 1:HSE时钟作为PLL输入时钟。

位15:14

ADCPRE[1:0]:ADC预分频 (ADC prescaler) 由软件置’1’或清’0’来确定ADC时钟频率 00:PCLK2 2分频后作为ADC时钟 01:PCLK2 4分频后作为ADC时钟 10:PCLK2 6分频后作为ADC时钟 11:PCLK2 8分频后作为ADC时钟

位13:11

PPRE2[2:0]:高速APB预分频(APB2) (APB high-speed prescaler (APB2)) 由软件置’1’或清’0’来控制高速APB2时钟(PCLK2)的预分频系数。 0xx:HCLK不分频 100:HCLK 2分频 101:HCLK 4分频 110:HCLK 8分频 111:HCLK 16分频

62/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位10:8 由软件置’1’或清’0’来控制低速APB1时钟(PCLK1)的预分频系数。 警告:软件必须保证APB1时钟频率不超过36MHz。 0xx:HCLK不分频 100:HCLK 2分频 101:HCLK 4分频 110:HCLK 8分频 111:HCLK 16分频 位7:4 HPRE[3:0]: AHB预分频 (AHB Prescaler) 由软件置’1’或清’0’来控制AHB时钟的预分频系数。 0xxx:SYSCLK不分频 1000:SYSCLK 2分频 1001:SYSCLK 4分频 1010:SYSCLK 8分频 1011:SYSCLK 16分频 位3:2

STM32F10xxx参考手册

PPRE1[2:0]:低速APB预分频(APB1) (APB low-speed prescaler (APB1))

1100:SYSCLK 64分频 1101:SYSCLK 128分频 1110:SYSCLK 256分频 1111:SYSCLK 512分频

注意:当AHB时钟的预分频系数大于1时,必须开启预取缓冲器。详见闪存读取(第2.3.3节)。 SWS[1:0]:系统时钟切换状态 (System clock switch status) 由硬件置’1’或清’0’来指示哪一个时钟源被作为系统时钟。 00:HSI作为系统时钟; 01:HSE作为系统时钟; 10:PLL输出作为系统时钟; 11:不可用。 位1:0 SW[1:0]:系统时钟切换 (System clock switch) 由软件置’1’或清’0’来选择系统时钟源。 在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时,由硬件强制选择 HSI作为系统时钟(如果时钟安全系统已经启动) 00:HSI作为系统时钟; 01:HSE作为系统时钟; 10:PLL输出作为系统时钟; 11:不可用。

6.3.3

时钟中断寄存器 (RCC_CIR)
偏移地址: 0x08 复位值: 0x0000 0000 访问:无等待周期, 字, 半字 和字节访问

31

30

29

28 保留

27

26

25

24

23 CSSC w

22 保留

21

20 19 18 PLL HSE HIS RDYC RDYC RDYC w w w 4
PLL RDYF

17
LSE RDYC

w 1
LSE RDYF

16 LSI RDYC w 0
LSI RDYF

15

14
保留

13

12

11

10

9

8

7
CSSF

6
保留

5

3
HSE RDYF

2
HSI RDYF

PLL HSE HSI LSE LSI RDYIE RDYIE RDYIE RDYIE RDYIE

rw
位31:24 位23

rw

rw

rw

rw

r

r

r

r

r

r

保留,始终读为0。 CSSC:清除时钟安全系统中断 (Clock security system interrupt clear) 由软件置’1’来清除CSSF安全系统中断标志位CSSF。 0:无作用; 1:清除CSSF安全系统中断标志位。

63/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位22:21 位20 保留,始终读为0。 PLLRDYC:清除PLL就绪中断 (PLL ready interrupt clear) 由软件置’1’来清除PLL就绪中断标志位PLLRDYF。 0:无作用; 1:清除PLL就绪中断标志位PLLRDYF。 位19 HSERDYC:清除HSE就绪中断 (HSE ready interrupt clear) 由软件置’1’来清除HSE就绪中断标志位HSERDYF。 0:无作用; 1:清除HSE就绪中断标志位HSERDYF。 位18 HSIRDYC: 清除HSI就绪中断 (HSI ready interrupt clear) 由软件置’1’来清除HSI就绪中断标志位HSIRDYF。 0:无作用; 1:清除HSI就绪中断标志位HSIRDYF。 位17 LSERDYC:清除LSE就绪中断 (LSE ready interrupt clear) 由软件置’1’来清除LSE就绪中断标志位LSERDYF。 0:无作用; 1:清除LSE就绪中断标志位LSERDYF。 位16 LSIRDYC:清除LSI就绪中断 (LSI ready interrupt clear) 由软件置’1’来清除LSI就绪中断标志位LSIRDYF。 0:无作用; 1:清除LSI就绪中断标志位LSIRDYF。 位15:13 位12 保留,始终读为0。 PLLRDYIE:PLL就绪中断使能 (PLL ready interrupt enable) 由软件置’1’或清’0’来使能或关闭PLL就绪中断。 0:PLL就绪中断关闭; 1:PLL就绪中断使能。 位11 HSERDYIE:HSE就绪中断使能 (HSE ready interrupt enable) 由软件置’1’或清’0’来使能或关闭外部4-16MHz振荡器就绪中断。 0:HSE就绪中断关闭; 1:HSE就绪中断使能。 位10 HSIRDYIE:HSI就绪中断使能 (HSI ready interrupt enable) 由软件置’1’或清’0’来使能或关闭内部8MHz RC振荡器就绪中断。 0:HSI就绪中断关闭; 1:HSI就绪中断使能。 位9 LSERDYIE:LSE就绪中断使能 (LSE ready interrupt enable) 由软件置’1’或清’0’来使能或关闭外部32kHz RC振荡器就绪中断。 0:LSE就绪中断关闭; 1:LSE就绪中断使能。 位8 LSIRDYIE:LSI就绪中断使能 (LSI ready interrupt enable) 由软件置’1’或清’0’来使能或关闭内部40kHz RC振荡器就绪中断。 0:LSI就绪中断关闭; 1:LSI就绪中断使能。 位7

STM32F10xxx参考手册

CSSF:时钟安全系统中断标志 (Clock security system interrupt flag) 在外部4-16MHz振荡器时钟出现故障时,由硬件置’1’。 由软件通过置’1’ CSSC位来清除。 0:无HSE时钟失效产生的安全系统中断; 1:HSE时钟失效导致了时钟安全系统中断。

位6:5

保留,始终读为0。

64/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位4 PLLRDYF:PLL就绪中断标志 (PLL ready interrupt flag) 在PLL就绪且PLLRDYIE位被置’1’时,由硬件置’1’。 由软件通过置’1’ PLLRDYC位来清除。 0:无PLL上锁产生的时钟就绪中断; 1:PLL上锁导致时钟就绪中断。 位3 HSERDYF:HSE就绪中断标志 (HSE ready interrupt flag) 在外部低速时钟就绪且HSERDYIE位被置’1’时,由硬件置’1’。 由软件通过置’1’ HSERDYC位来清除。 0:无外部4-16MHz振荡器产生的时钟就绪中断; 1:外部4-16MHz振荡器导致时钟就绪中断。 位2 HSIRDYF:HSI就绪中断标志 (HSI ready interrupt flag) 在内部高速时钟就绪且HSIRDYIE位被置’1’时,由硬件置’1’。 由软件通过置’1’ HSIRDYC位来清除。 0:无内部8MHz RC振荡器产生的时钟就绪中断; 1:内部8MHz RC振荡器导致时钟就绪中断。 位1 LSERDYF:LSE就绪中断标志 (LSE ready interrupt flag) 在外部低速时钟就绪且LSERDYIE位被置’1’时,由硬件置’1’。 由软件通过置’1’ LSERDYC位来清除。 0:无外部32kHz振荡器产生的时钟就绪中断; 1:外部32kHz振荡器导致时钟就绪中断。 位0 LSIRDYF:LSI就绪中断标志 (LSI ready interrupt flag) 在内部低速时钟就绪且LSIRDYIE位被置’1’时,由硬件置’1’。 由软件通过置’1’ LSIRDYC位来清除。 0:无内部40kHz RC振荡器产生的时钟就绪中断; 1:内部40kHz RC振荡器导致时钟就绪中断。

STM32F10xxx参考手册

6.3.4

APB2 外设复位寄存器 (RCC_APB2RSTR)
偏移地址: 0x0C 复位值: 0x0000 0000 访问:无等待周期, 字, 半字 和字节访问

31

30

29

28

27

26

25

24

23 保留

22

21

20

19

18

17

16

15

14

13

12
SPI1 RST

11
TIM1 RST

10
ADC2 RST

9
ADC1 RST

8
IOPG RST

7
IOPF RST

6
IOPE RST

5
IOPD RST

4
IOPC RST

3
IOPB RST

2
IOPA RST

1
保留

0
AFIO RST

ADC3 USART1 TIM8 RST RST RST

rw

rw
位15

rw
位31:16

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

res

rw

保留,始终读为0。 ADC3RST:ADC3接口复位 (ADC3 interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位ADC3接口。

位14

USART1RST:USART1复位 (USART1 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位USART1。

65/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位13 TIM8RST:TIM8定时器复位 (TIM8 timer reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM8定时器。 位12 SPI1RST:SPI1复位 (SPI 1 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位SPI1。 位11 TIM1RST:TIM1定时器复位 (TIM1 timer reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM1定时器。 位10 ADC2RST:ADC2接口复位 (ADC 2 interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位ADC2接口。 位9 ADC1RST:ADC1接口复位 (ADC 1 interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位ADC1接口。 位8 IOPGRST:IO端口G复位 (IO port G reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口G。 位7 IOPFRST:IO端口F复位 (IO port F reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口F。 位6 IOPERST:IO端口E复位 (IO port E reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口E。 位5 IOPDRST:IO端口D复位 (IO port D reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口D。 位4 IOPCRST:IO端口C复位 (IO port C reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口C。 位3 IOPBRST:IO端口B复位 (IO port B reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口B。 位2 IOPARST:IO端口A复位 (IO port A reset) 由软件置’1’或清’0’ 0:无作用; 1:复位IO端口A。 位1 保留,始终读为0。

STM32F10xxx参考手册

66/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位0 AFIORST:辅助功能IO复位 (Alternate function I/O reset) 由软件置’1’或清’0’ 0:无作用; 1:复位辅助功能。

STM32F10xxx参考手册

6.3.5

APB1 外设复位寄存器 (RCC_APB1RSTR)
偏移地址:0x10 复位值:0x0000 0000 访问:无等待周期,字, 半字和字节访问

31

30

29 DACRST

28 PWR RST

27 BKP RST

26 保留

25 CAN RST

24 保留

23 USB RST

22 I2C2 RST

21

20

19

18

17

16

保留
15 SPI3 RST 14 SPI2 RST

I2C1 UART5R UART4R USART3 USART2 保留 RST ST ST RST RST

rw
13 保留

rw
12

rw
11 WWDG RST 10

rw
9 8 保留

rw
7

rw
6

rw
5 TIM7 RST

rw
4 TIM6 RST

rw
3 TIM5 RST

rw
2 TIM4 RST

rw
1 TIM3 RST 0 TIM2 RST

rw

rw
位31:30 位29

rw
保留,始终读为0。 DACRST:DAC接口复位 (DAC interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位DAC接口。 位28 PWRRST:电源接口复位 (Power interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位电源接口。 位27 BKPRST:备份接口复位 (Backup interface reset) 由软件置’1’或清’0’ 0:无作用; 1:复位备份接口。 位26 位25 保留,始终读为0。 CANRST:CAN复位 (CAN reset) 由软件置’1’或清’0’ 0:无作用; 1:复位CAN。 位24 位23 保留,始终读为0。 USBRST:USB复位 (USB reset) 由软件置’1’或清’0’ 0:无作用; 1:复位USB。 位22 I2C2RST:I2C 2复位 (I2C 2 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位I2C 2。 位21 I2C1RST:I2C 1复位 (I2C 1 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位I2C 1。

rw

rw

rw

rw

rw

rw

67/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位20 UART5RST:UART5复位 (UART 5 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位UART5。 位19 UART4RST:UART4复位 (UART 4 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位UART4。 位18 USART3RST:USART3复位 (USART 3 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位USART3。 位17 USART2RST:USART2复位 (USART 2 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位USART2。 位16 位15 保留,始终读为0。 SPI3RST SPI3 复位 (SPI 3 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位SPI3。 位14 SPI2RST:SPI2复位 (SPI 2 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位SPI2。 位13:12 位11 保留,始终读为0。 WWDGRST:窗口看门狗复位 (Window watchdog reset) 由软件置’1’或清’0’ 0:无作用; 1:复位窗口看门狗。 位10:6 位5 保留,始终读为0。 TIM7RST:定时器7复位 (Timer 7 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM7定时器。 位4 TIM6RST:定时器6复位 (Timer 6 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM6定时器。 位3 TIM5RST:定时器5复位 (Timer 5 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM5定时器。 位2 TIM4RST:定时器4复位 (Timer 4 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM4定时器。

STM32F10xxx参考手册

68/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位1 TIM3RST:定时器3复位 (Timer 3 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM3定时器。 位0 TIM2RST:定时器2复位 (Timer 2 reset) 由软件置’1’或清’0’ 0:无作用; 1:复位TIM2定时器。

STM32F10xxx参考手册

6.3.6

AHB外设时钟使能寄存器 (RCC_AHBENR)
偏移地址:0x14 复位值:0x0000 0014 访问:无等待周期, 字, 半字 和字节访问

注:
31

当外设时钟没有启用时,软件不能读出外设寄存器的数值,返回的数值始终是0x0。
30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

保留
15 14 13 保留 12 11 10 9 8 7 6 5 保留 4 FLITF EN 3 保留 2 SRAM EN 1 DMA2 EN 0 DMA1 EN

SDIOEN 保留 FSMCEN 保留 CRCEN

rw
位31:11 位10 保留,始终读为0。

rw

rw

rw

rw

rw

rw

SDIOEN:SDIO时钟使能 (SDIO clock enable) 由软件置’1’或清’0’。 0:SDIO时钟关闭; 1:SDIO时钟开启。

位9 位8

保留,始终读为0。 FSMCEN:FSMC时钟使能 (FSMC clock enable) 由软件置’1’或清’0’。 0:FSMC时钟关闭; 1:FSMC时钟开启。

位7 位6

保留,始终读为0。 CRCEN:CRC时钟使能 (CRC clock enable) 由软件置’1’或清’0’。 0:CRC时钟关闭; 1:CRC时钟开启。

位5 位4

保留,始终读为0。 FLITFEN:闪存接口电路时钟使能 (FLITF clock enable) 由软件置’1’或清’0’来开启或关闭睡眠模式时闪存接口电路时钟。 0:睡眠模式时闪存接口电路时钟关闭; 1:睡眠模式时闪存接口电路时钟开启。

位3 位2

保留,始终读为0。 SRAMEN:SRAM时钟使能 (SRAM interface clock enable) 由软件置’1’或清’0’来开启或关闭睡眠模式时SRAM时钟。 0:睡眠模式时SRAM时钟关闭; 1:睡眠模式时SRAM时钟开启。

69/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位1 DMA2EN:DMA2时钟使能 (DMA2 clock enable) 由软件置’1’或清’0’。 0:DMA2时钟关闭; 1:DMA2时钟开启。 位0 DMA1EN:DMA1时钟使能 (DMA1 clock enable) 由软件置’1’或清’0’。 0:DMA1时钟关闭; 1:DMA1时钟开启。

STM32F10xxx参考手册

6.3.7

APB2 外设时钟使能寄存器(RCC_APB2ENR)
偏移地址:0x18 复位值:0x0000 0000 访问:字,半字和字节访问 通常无访问等待周期。但在APB2总线上的外设被访问时,将插入等待状态直到APB2的外设访 问结束。

注:
31

当外设时钟没有启用时,软件不能读出外设寄存器的数值,返回的数值始终是0x0。
30 29 28 27 26 25 24 保留 23 22 21 20 19 18 17 16

15

14

13

12
SPI1 EN

11
TIM1 EN

10
ADC2 EN

9
ADC1 EN

8
IOPG EN

7
IOPF EN

6
IOPE EN

5
IOPD EN

4
IOPC EN

3
IOPB EN

2
IOPA EN

1
保留

0
AFIO EN

ADC3 USART1 TIM8 EN EN EN

rw

rw

rw
位31:16 位15

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

rw

保留,始终读为0。 ADC3EN:ADC3接口时钟使能 (ADC 3 interface clock enable) 由软件置’1’或清’0’ 0:ADC3接口时钟关闭; 1:ADC3接口时钟开启。

位14

USART1EN:USART1时钟使能 (USART1 clock enable) 由软件置’1’或清’0’ 0:USART1时钟关闭; 1:USART1时钟开启。

位13

TIM8EN:TIM8定时器时钟使能 (TIM8 Timer clock enable) 由软件置’1’或清’0’ 0:TIM8定时器时钟关闭; 1:TIM8定时器时钟开启。

位12

SPI1EN:SPI1时钟使能 (SPI 1 clock enable) 由软件置’1’或清’0’ 0:SPI1时钟关闭; 1:SPI1时钟开启。

位11

TIM1EN:TIM1定时器时钟使能 (TIM1 Timer clock enable) 由软件置’1’或清’0’ 0:TIM1定时器时钟关闭; 1:TIM1定时器时钟开启。

位10

ADC2EN:ADC2接口时钟使能 (ADC 2 interface clock enable) 由软件置’1’或清’0’ 0:ADC2接口时钟关闭; 1:ADC2接口时钟开启。

70/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位9 ADC1EN:ADC1接口时钟使能 (ADC 1 interface clock enable) 由软件置’1’或清’0’ 0:ADC1接口时钟关闭; 1:ADC1接口时钟开启。 位8 IOPGEN:IO端口G时钟使能 (I/O port G clock enable) 由软件置’1’或清’0’ 0:IO端口G时钟关闭; 1:IO端口G时钟开启。 位7 IOPFEN:IO端口F时钟使能 (I/O port F clock enable) 由软件置’1’或清’0’ 0:IO端口F时钟关闭; 1:IO端口F时钟开启。 位6 IOPEEN:IO端口E时钟使能 (I/O port E clock enable) 由软件置’1’或清’0’ 0:IO端口E时钟关闭; 1:IO端口E时钟开启。 位5 IOPDEN:IO端口D时钟使能 (I/O port D clock enable) 由软件置’1’或清’0’ 0:IO端口D时钟关闭; 1:IO端口D时钟开启。 位4 IOPCEN:IO端口C时钟使能 (I/O port C clock enable) 由软件置’1’或清’0’ 0:IO端口C时钟关闭; 1:IO端口C时钟开启。 位3 IOPBEN:IO端口B时钟使能 (I/O port B clock enable) 由软件置’1’或清’0’ 0:IO端口B时钟关闭; 1:IO端口B时钟开启。 位2 IOPAEN:IO端口A时钟使能 (I/O port A clock enable) 由软件置’1’或清’0’ 0:IO端口A时钟关闭; 1:IO端口A时钟开启。 位1 位0 保留,始终读为0。

STM32F10xxx参考手册

AFIOEN:辅助功能IO时钟使能 (Alternate function I/O clock enable) 由软件置’1’或清’0’ 0:辅助功能IO时钟关闭; 1:辅助功能IO时钟开启。

6.3.8

APB1 外设时钟使能寄存器(RCC_APB1ENR)
偏移地址:0x1C 复位值:0x0000 0000 访问:字、半字和字节访问 通常无访问等待周期。但在APB1总线上的外设被访问时,将插入等待状态直到APB1外设访问 结束。

注:

当外设时钟没有启用时,软件不能读出外设寄存器的数值,返回的数值始终是0x0。

71/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
31 保留 30 29 DACEN 28 PWR EN 27 BKP EN 26 保留 25 CAN EN 24 保留 23 USB EN 22 I2C2 EN 21 I2C1 EN 20

STM32F10xxx参考手册
19 18 17 16

UART5 UART4 USART3 USART2 保留 EN EN EN EN

rw
15 SPI3 EN 14 SPI2 EN 13 保留

rw
12

rw
11 WWDG EN 10

rw
9 8 保留

rw
7

rw
6

rw
5 TIM7 EN

rw
4 TIM6 EN

rw
3 TIM5 EN

rw
2 TIM4 EN

rw
1 TIM3 EN 0 TIM2 EN

rw

rw
位31:30 位29

rw
保留,始终读为0。

rw

rw

rw

rw

rw

rw

DACEN: DAC接口时钟使能 (DAC interface clock enable) 由软件置’1’或清’0’ 0:DAC接口时钟关闭; 1:DAC接口时钟开启。

位28

PWREN:电源接口时钟使能 (Power interface clock enable) 由软件置’1’或清’0’ 0:电源接口时钟关闭; 1:电源接口时钟开启。

位27

BKPEN:备份接口时钟使能 (Backup interface clock enable) 由软件置’1’或清’0’ 0:备份接口时钟关闭; 1:备份接口时钟开启。

位26 位25

保留,始终读为0。 CANEN:CAN时钟使能 (CAN clock enable) 由软件置’1’或清’0’ 0:CAN时钟关闭; 1:CAN时钟开启。

位24 位23

保留,始终读为0。 USBEN:USB时钟使能 (USB clock enable) 由软件置’1’或清’0’ 0:USB时钟关闭; 1:USB时钟开启。

位22

I2C2EN:I2C 2时钟使能 (I2C 2 clock enable) 由软件置’1’或清’0’ 0:I2C 2时钟关闭; 1:I2C 2时钟开启。

位21

I2C1EN:I2C 1时钟使能 (I2C 1 clock enable) 由软件置’1’或清’0’ 0:I2C 1时钟关闭; 1:I2C 1时钟开启。

位20

UART5EN:UART5时钟使能 (UART 5 clock enable) 由软件置’1’或清’0’ 0:UART5时钟关闭; 1:UART5时钟开启。

位19

UART4EN:UART4时钟使能 (UART 4 clock enable) 由软件置’1’或清’0’ 0:UART4时钟关闭; 1:UART4时钟开启。

72/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位18 USART3EN:USART3时钟使能 (USART 3 clock enable) 由软件置’1’或清’0’ 0:USART3时钟关闭; 1:USART3时钟开启。 位17 USART2EN:USART2时钟使能 (USART 2 clock enable) 由软件置’1’或清’0’ 0:USART2时钟关闭; 1:USART2时钟开启。 位16 位15 保留,始终读为0。 SPI3EN:SPI 3时钟使能 (SPI 3 clock enable) 由软件置’1’或清’0’ 0:SPI 3时钟关闭; 1:SPI 3时钟开启。 位14 SPI2EN:SPI 2时钟使能 (SPI 2 clock enable) 由软件置’1’或清’0’ 0:SPI 2时钟关闭; 1:SPI 2时钟开启。 位13:12 位11 保留,始终读为0。

STM32F10xxx参考手册

WWDGEN:窗口看门狗时钟使能 (Window watchdog clock enable) 由软件置’1’或清’0’ 0:窗口看门狗时钟关闭; 1:窗口看门狗时钟开启。

位10:6 位5

保留,始终读为0。 TIM7EN:定时器7时钟使能 (Timer 7 clock enable) 由软件置’1’或清’0’ 0:定时器7时钟关闭; 1:定时器7时钟开启。

位4

TIM6EN:定时器6时钟使能 (Timer 6 clock enable) 由软件置’1’或清’0’ 0:定时器6时钟关闭; 1:定时器6时钟开启。

位3

TIM5EN:定时器5时钟使能 (Timer 5 clock enable) 由软件置’1’或清’0’ 0:定时器5时钟关闭; 1:定时器5时钟开启。

位2

TIM4EN:定时器4时钟使能 (Timer 4 clock enable) 由软件置’1’或清’0’ 0:定时器4时钟关闭; 1:定时器4时钟开启。

位1

TIM3EN:定时器3时钟使能 (Timer 3 clock enable) 由软件置’1’或清’0’ 0:定时器3时钟关闭; 1:定时器3时钟开启。

位0

TIM2EN:定时器2时钟使能 (Timer 2 clock enable) 由软件置’1’或清’0’ 0:定时器2时钟关闭; 1:定时器2时钟开启。

73/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

6.3.9

备份域控制寄存器 (RCC_BDCR)
偏移地址:0x20 复位值:0x0000 0000,只能由备份域复位有效复位 访问:0到3等待周期,字、半字和字节访问 当连续对该寄存器进行访问时,将插入等待状态。

注意: 备份域控制寄存器中(RCC_BDCR)的LSEON、LSEBYP、RTCSEL和RTCEN位处于备份域。因 此,这些位在复位后处于写保护状态,只有在电源控制寄存器(PWR_CR)中的DBP位置’1’后才 能对这些位进行改动。进一步信息请参考5.1节。这些位只能由备份域复位清除(见6.1.3节)。任 何内部或外部复位都不会影响这些位。
31 30 29 28 27 26 25 24 保留 15 RTC EN rw
位31:17 位16

23

22

21

20

19

18

17

16 BDRST

14

13

12 保留

11

10

9

8

7

6

5 保留

4

3

2 LSE BYP rw

1 LSE RDY r

rw 0 LSEON rw

RTCSEL[1:0] rw rw

保留,始终读为0。 BDRST:备份域软件复位 (Backup domain software reset) 由软件置’1’或清’0’ 0:复位未激活; 1:复位整个备份域。

位15

RTCEN:RTC时钟使能 (RTC clock enable) 由软件置’1’或清’0’ 0:RTC时钟关闭; 1:RTC时钟开启。

位14:10 位9:8

保留,始终读为0。 RTCSEL[1:0]:RTC时钟源选择 (RTC clock source selection) 由软件设置来选择RTC时钟源。一旦RTC时钟源被选定,直到下次后备域被复位,它不能在被 改变。可通过设置BDRST位来清除。 00:无时钟; 01:LSE振荡器作为RTC时钟; 10:LSI振荡器作为RTC时钟; 11:HSE振荡器在128分频后作为RTC时钟。

位7:3 位2

保留,始终读为0。 LSEBYP:外部低速时钟振荡器旁路 (External low-speed oscillator bypass) 在调试模式下由软件置’1’或清’0’来旁路LSE。只有在外部32kHz振荡器关闭时,才能写入该位 0:LSE时钟未被旁路; 1:LSE时钟被旁路。

位1

LSERDY:外部低速LSE就绪 (External low-speed oscillator ready) 由硬件置’1’或清’0’来指示是否外部32kHz振荡器就绪。在LSEON被清零后,该位需要6个外部 低速振荡器的周期才被清零。 0:外部32kHz振荡器未就绪; 1:外部32kHz振荡器就绪。

位0

LSEON:外部低速振荡器使能 (External low-speed oscillator enable) 由软件置’1’或清’0’ 0:外部32kHz振荡器关闭; 1:外部32kHz振荡器开启。

74/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

6.3.10

控制/状态寄存器 (RCC_CSR)
偏移地址:0x24 复位值:0x0C00 0000,除复位标志外由系统复位清除,复位标志只能由电源复位清除。 访问:0到3等待周期,字、半字和字节访问 当连续对该寄存器进行访问时,将插入等待状态。

31 LPWR RSTF rw 15

30 WWDG RSTF rw 14

29 IWDG RSTF rw 13

28 SFT RSTF rw 12

27 POR RSTF rw 11

26 PIN RSTF rw 10

25 保留 9 保留

24 RMVF rw 8

23

22

21

20 保留

19

18

17

16

7

6

5

4

3

2

1 LSI RDY r

0 LSION rw

位31

LPWRRSTF:低功耗复位标志 (Low-power reset flag) 在低功耗管理复位发生时由硬件置’1’;由软件通过写RMVF位清除。 0:无低功耗管理复位发生; 1:发生低功耗管理复位. 关于低功耗管理复位的详细信息,请参考6.1.1节的”低功耗管理复位”。

位30

WWDGRSTF:窗口看门狗复位标志 (Window watchdog reset flag) 在窗口看门狗复位发生时由硬件置’1’;由软件通过写RMVF位清除。 0:无窗口看门狗复位发生; 1:发生窗口看门狗复位。

位29

IWDGRSTF:独立看门狗复位标志 (Independent watchdog reset flag) 在独立看门狗复位发生在VDD区域时由硬件置’1’;由软件通过写RMVF位清除。 0:无独立看门狗复位发生; 1:发生独立看门狗复位。

位28

SFTRSTF:软件复位标志 (Software reset flag) 在软件复位发生时由硬件置’1’;由软件通过写RMVF位清除。 0:无软件复位发生; 1:发生软件复位。

位27

PORRSTF:上电/掉电复位标志 (POR/PDR reset flag) 在上电/掉电复位发生时由硬件置’1’;由软件通过写RMVF位清除。 0:无上电/掉电复位发生; 1:发生上电/掉电复位。

位26

PINRSTF:NRST引脚复位标志 (PIN reset flag) 在NRST引脚复位发生时由硬件置’1’;由软件通过写RMVF位清除。 0:无NRST引脚复位发生; 1:发生NRST引脚复位。

位25 位24

保留,读操作返回0 RMVF:清除复位标志 (Remove reset flag) 由软件置’1’来清除复位标志。 0:无作用; 1:清除复位标志。

位23:2 位1

保留,读操作返回0 LSIRDY:内部低速振荡器就绪 (Internal low-speed oscillator ready) 由硬件置’1或清’0’来指示内部40kHz RC振荡器是否就绪。在LSION清零后,3个内部40kHz RC 振荡器的周期后LSIRDY被清零。 0:内部40kHz RC振荡器时钟未就绪; 1:内部40kHz RC振荡器时钟就绪。

75/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

小容量、中容量和大容量产品的复位和时钟控制(RCC)
位0 由软件置’1或清’0’。 0:内部40kHz RC振荡器关闭; 1:内部40kHz RC振荡器开启。

STM32F10xxx参考手册

LSION:内部低速振荡器使能 (Internal low-speed oscillator enable)

76/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

偏移

000h

01Ch

6.3.11

024h 014h 010h 00Ch 008h 004h 018h

020h

表15

RCC_CR

RCC_AHBENR

RCC_APB1RSTR

RCC_APB2RSTR

RCC_APB1ENR

RCC_APB2ENR

RCC_BDCR

RCC_CFGR

RCC_CSR 复位值 复位值 复位值 复位值 复位值 复位值 复位值 寄存器

RCC_CIR

复位值

复位值

复位值

保留

保留 保留 保留

0 0 0
保留

0 0 0

RCC寄存器地址映像

RCC寄存器地址映像和复位值

0 0 0 0 1 1 0 0 0 0 0 0
MCO[2:0]

0

保留

保留

保留

0
0 CSSC 保留

LPWRRSTF WWDGRSTF IWDGRSTF SFTRSTF PORRSTF PINRSTF 保留 RMVF PLLRDY PLLON 保留 USBPRE
PLLMUL[3:0]

小容量、中容量和大容量产品的复位和时钟控制(RCC)

有关寄存器的起始地址,请参考表1。
保留

下表列出了RCC寄存器的映像和复位值。

保留

0 0 0 0 0 0 0 0 0 0 0 0
PLLRDYC HSERDYC HSIRDYC LSERDYC LSIRDYC 保留

0 0 0 0 0 0 0

BDRST RTCEN

PLLXTPRE PLLSRC

CSSON HSEBYP HSERDY HSEON

0 0 0 0
保留 保留

0 0

DACRST PWREN BKPEN 保留 CANEN 保留 USBEN I2C2EN I2C1EN UART5EN UART4EN USART3EN USART2EN 保留 SPI3EN SPI2EN
ADC PRRE2 PRE [1:0] [2:0]

DACRST PWRRST BKPRST 保留 CANRST 保留 USBRST I2C2RST I2C1RST UART5RST UART4RST USART3RST USART2RST 保留 SPI3RST SPI2RST

HSICAL[7:0]

0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0

保留

保留

0 0 0

0

WWDGEN 保留 保留

WWDGRST

PRRE1 [2:0]

0 0 0 0 0 0

STM32F10xxx参考手册

RTC SEL [1:0]

0 0 0 1 0 0 0 0 0 0 0

PLLRDYIE HSERDYIE HSIRDYIE LSERDYIE LSIRDYIE CSSF 保留

SWS[1:0 ]

1 1

0 0 0 0 0 0

0 0 0 0 0

0 0 0

1 0 0

0 0

77/754

参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

LSIRDY LSION

LSEBYP LSERDYF LSEON

TIM7EN TIM6EN TIM5EN TIM4EN TIM3EN TIM2EN

ADC3EN USART1EN TIM8RST SPI1EN TIM1EN ADC2EN ADC1EN IOPGEN IOPFEN IOPEEN IOPDEN IOPCEN IOPBEN IOPAEN 保留 AFIOEN

SDIOEN 保留 FSMCEN 保留 CRCEN 保留 FLITFEN 保留 SRAMEN DMA2EN DMA1EN

TIM7RST TIM6RST TIM5RST TIM4RST TIM3RST TIM2RST

ADC3RST USART1RST TIM8RST SPIRST TIM1RST ADC2RST ADC1RST IOPGRST IOPFRST IOPERST IOPDRST IOPCRST IOPBRST IOPARST 保留 AFIORST

PLLRDYF HSERDYF HSIRDYF LSERDYF LSIRDYF

SW[1:0]

HPRE[3:0]

HSITRIM[4:0]

保留

0

保留 HSIRDY HSION

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

互联型产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

7

互联型产品的复位和时钟控制(RCC)
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 本章内容适用于互联型产品,除非特别说明。

7.1
7.1.1

复位
有三种复位:系统复位、电源复位和后备域复位。

系统复位
系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器 为它们的复位数值(见图4)。 当以下事件中的一件发生时,产生一个系统复位: 1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWDG复位) 3. 独立看门狗计数终止(IWDG复位) 4. 软件复位(SW复位) 5. 低功耗管理复位 可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

软件复位
通过将Cortex?-M3中断应用和复位控制寄存器中的SYSRESETREQ位置’1’,可实现软件复 位。请参考Cortex?-M3技术参考手册获得进一步信息。

低功耗管理复位
在以下两种情况下可产生低功耗管理复位: 在进入待机模式时产生低功耗管理复位: 通过将用户选择字节中的nRST_STDBY位置’1’将使能该复位。这时,即使执行了进入待 机模式的过程,系统将被复位而不是进入待机模式。 2. 在进入停止模式时产生低功耗管理复位: 通过将用户选择字节中的nRST_STOP位置’1’将使能该复位。这时,即使执行了进入停机 模式的过程,系统将被复位而不是进入停机模式。 关于用户选择字节的进一步信息,请参考STM32F10xxx闪存编程手册。 1.

7.1.2

电源复位
当以下事件中之一发生时,产生电源复位: 1. 上电/掉电复位(POR/PDR复位) 2. 从待机模式中返回 电源复位将复位除了备份区域外的所有寄存器(见图4)。 下图中复位源将最终作用于RESET引脚,并在复位过程中保持低电平。复位入口矢量被固定在 地址0x0000_0004。更多细节,参见表54:互联型产品的向量表。 芯片内部的复位信号会在NRST引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有 至少20μs的脉冲延时;当NRST引脚被拉低产生外部复位时,它将产生复位脉冲。
78/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC) 图10 复位电路

STM32F10xxx参考手册

7.1.3

备份域复位
备份区域拥有两个专门的复位,它们只影响备份区域(见图4)。 当以下事件中之一发生时,产生备份区域复位。 1. 2. 软件复位,备份区域复位可由设置备份域控制寄存器(RCC_BDCR)(见7.3.9节)中的 BDRST位产生。 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。

7.2

时钟
三种不同的时钟源可被用来驱动系统时钟(SYSCLK): ● HSI振荡器时钟 ● HSE振荡器时钟 ● PLL时钟 这些设备有以下2种二级时钟源: ● 40kHz低速内部RC(LSI RC)振荡器,可以用于驱动独立看门狗,或通过程序选择驱动 RTC,用于从停机/待机模式下自动唤醒系统。 ● 也可以通过程序选择32.768kHz低速外部晶体(LSE晶体)用来驱动RTC(RTCCLK)。 当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。

79/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC) 图11 时钟树

STM32F10xxx参考手册

1.当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是36MHz。 2.对于内部和外部时钟源的特性,请参考相应产品数据手册中“电气特性”章节。

高级时钟控制器拥有3个PLL,为使用外部晶体或振荡器提供了高度的灵活性,使得核心和外设 能够工作在最高的频率,同时保证以太网和全速的USB OTG能够有合适的时钟。 一个单一的25MHz晶体可以为整个系统和所有包括以太网和全速USB OTG的外设提供时钟。为 了实现高质量的音频性能,可以使用一个音频晶体;这样,I2S的主时钟可以产生所有从8kHz至 96kHz之间的标准采样频率,而误差小于0.5%。 更多关于以太网、全速USB OTG和/或I2S(音频)时钟配置的需求,请参考互联型产品数据手册 的“附录A 应用框图”。 用户可通过多个预分频器配置AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和 APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。 除去以下情况,所有外设的时钟都是从系统时钟(SYSCLK)得到: ● Flash存储器编程接口时钟始终是HSI时钟。
80/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

● 全速USB OTG的48MHz时钟是从PCC VCO时钟(2xPLLCLK),和随后可编程预分频器(除3 或除2)得到,这是通过RCC_CFGR寄存器的OTGFSPRE位控制。为了正常地操作USB全 速OTG,应该配置PLL输出72MHz或48MHz。 ● I2S2和I2S3的时钟还可以从PLL3 VCO时钟(2xPLL3CLK)得到,这是通过RCC_CFGR2寄 存器的I2SxSRC位控制。更多有关PLL3的内容和如何配置I2S时钟,以得到高质量的音频效 果,请参阅第23.4.3节:时钟发生器。 ● 以太网MAC的时钟(TX、RX和RMII)是由外部PHY提供。更多有关以太网配置的详情,请见 第27.4.4节:MII/RMII的选择。 当使用以太网模块时,AHB时钟频率必须至少为25MHz。 RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick 控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟 由高速APB2时钟经2、4、6或8分频后获得。 定时器时钟频率分配由硬件按以下2种情况自动设置: 1. 如果相应的APB预分频系数是1,定时器的时钟频率与所在APB总线频率一致。 2. 否则,定时器的时钟频率被设为与其相连的APB总线频率的2倍。 FCLK是Cortex?-M3的自由运行时钟。详情见ARM的Cortex?-M3 r1p1 技术参考手册(TRM)。

7.2.1

HSE时钟
高速外部时钟信号(HSE)由以下两种时钟源产生: ● HSE外部晶体/陶瓷谐振器 ● HSE用户外部时钟 为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能地靠 近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。 图12 HSE/LSE时钟源
硬件配置

外部时钟

晶体/陶瓷谐振器

外部时钟源(HSE旁路)
在这个模式里,必须提供外部时钟。它的频率最高可达50MHz。用户可通过设置在时钟控制寄 存器中的HSEBYP和HSEON位来选择这一模式。外部时钟信号(50%占空比的方波、正弦波或 三角波)必须连到SOC_IN引脚,同时保证OSC_OUT引脚悬空。见图12。

外部晶体/陶瓷谐振器(HSE晶体)
3~25Mz外部振荡器可为系统提供非常精确的主时钟。相关的硬件配置可参考图12,进一步信息 可参考数据手册的电气特性部分。
81/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

在 时钟控制寄存器(RCC_CR)中的HSERDY位用来指示高速外部振荡器是否稳定。在启动时, 直到这一位被硬件置’1’,时钟才被释放出来。如果在时钟中断寄存器(RCC_CIR)中允许产生中 断,将会产生相应中断。 HSE晶体可以通过设置时钟控制寄存器(RCC_CR)中的HSEON位被启动和关闭。

7.2.2

HSI时钟
HSI时钟信号由内部8MHz的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL输入。 HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振 荡器短。然而,即使在校准之后它的时钟频率精度仍较差。

校准
制造工艺决定了不同芯片的RC振荡器频率会不同,这就是为什么每个芯片的HSI时钟频率在出 厂前已经被ST校准到1%(25°C)的原因。系统复位时,工厂校准值被装载到时钟控制寄存器的 HSICAL[7:0]位。 如果用户的应用基于不同的电压或环境温度,这将会影响RC振荡器的精度。可以通过时钟控制 寄存器里的HSITRIM[4:0]位来调整HSI频率。 时钟控制寄存器中的HSIRDY位用来指示HSI RC振荡器是否稳定。在时钟启动过程中,直到这 一位被硬件置’1’,HSI RC输出时钟才被释放。HSI RC可由时钟控制寄存器中的HSION位来启 动和关闭。 如果HSE晶体振荡器失效,HSI时钟会被作为备用时钟源。参考7.2.7节时钟安全系统(CSS)。

7.2.3

PLL
主PLL以下述时钟源之一为输入,产生倍频的输出: ● HSI时钟除以2 ● HSE或通过一个可配置分频器的PLL2时钟 参见图11和时钟控制寄存器(RCC_CR)。 PLL2 和 PLL3 由 HSE 通 过 一 个 可 配 置 的 分 频 器 提 供 时 钟 。 参 见 图 11 和 时 钟 配 置 寄 存 器 2(RCC_CFGR2)。 必须在使能每个PLL之前完成PLL的配置(选择时钟源、预分频系数和倍频系数等),同时应该在 它们的输入时钟稳定(就绪位)后才能使能。一旦使能了PLL,这些参数将不能再被改变。 当改变主PLL的输入时钟源时,必须在选中了新的时钟源(通过时钟配置寄存器(RCC_CFGR)的 PLLSRC位)之后才能关闭原来的时钟源。 如果使能了时钟中断寄存器(RCC_CIR),可以在PLL就绪时产生一个中断。

7.2.4

LSE时钟
LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供 一个低功耗且精确的时钟源。 LSE晶体通过在备份域控制寄存器(RCC_BDCR)里的LSEON位启动和关闭。 在 备份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶体振荡是否稳定。在启动阶段,直 到这个位被硬件置’1’后,LSE时钟信号才被释放出来。如果在时钟中断寄存器(RCC_CIR)里被 允许,可产生中断申请。

外部时钟源(LSE旁路)
在这个模式里必须提供一个32.768kHz频率的外部时钟源。你可以通过设置在备份域控制寄存器 (RCC_BDCR)里的LSEBYP和LSEON位来选择这个模式。具有50%占空比的外部时钟信号(方 波、正弦波或三角波)必须连到OSC32_IN引脚,同时保证OSC32_OUT引脚悬空,见图12。

82/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

7.2.5

LSI时钟
LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和 自动唤醒单元提供时钟。LSI时钟频率大约40kHz(在30kHz和60kHz之间)。进一步信息请参考数 据手册中有关电气特性部分。 LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。 在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。在启动阶段,直 到这个位被硬件设置为’1’后,此时钟才被释放。如果在时钟中断寄存器(RCC_CIR)里被允许, 将产生LSI中断申请。

LSI校准
可以通过校准内部低速振荡器LSI来补偿其频率偏移,从而获得精度可接受的RTC时间基数,以 及独立看门狗(IWDG)的超时时间(当这些外设以LSI为时钟源)。 校准可以通过使用TIM5的输入时钟(TIM5_CLK)测量LSI时钟频率实现。测量以HSE的精度为保 证,软件可以通过调整RTC的20位预分频器来获得精确的RTC时钟基数,以及通过计算得到精 确的独立看门狗(IWDG)的超时时间。 LSI校准步骤如下: 1. 2. 3. 4. 打开TIM5,设置通道4为输入捕获模式; 设置AFIO_MAPR的TIM5_CH4_IREMAP位为’1’,在内部把LSI连接到TIM5的通道4; 通过TIM5的捕获/比较4事件或者中断来测量LSI时钟频率; 根据测量结果和期望的RTC时间基数和独立看门狗的超时时间,设置20位预分频器。

7.2.6

系统时钟(SYSCLK)选择
系统复位后,HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它 将不能被停止。 只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时 钟源的切换才会发生。在被选择时钟源没有就绪时,系统时钟的切换不会发生。直至目标时钟 源就绪,才发生切换。 在时钟控制寄存器(RCC_CR)里的状态位指示哪个时钟已经准备好了,哪个时钟目前被用作系统 时钟。

7.2.7

时钟安全系统(CSS)
时钟安全系统可以通过软件被激活。一旦其被激活,时钟监测器将在HSE振荡器启动延迟后被 使能,并在HSE时钟关闭后关闭。 如果HSE时钟发生故障,HSE振荡器被自动关闭,时钟失效事件将被送到高级定时器(TIM1和 TIM8)的刹车输入端,并产生时钟安全中断CSSI,允许软件完成营救操作。此CSSI中断连接到 Cortex?-M3的NMI中断(不可屏蔽中断)。

注意: 一旦CSS被激活,并且HSE时钟出现故障,CSS中断就产生,并且NMI也自动产生。NMI将被不 断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器 (RCC_CIR)里的CSSC位来清除CSS中断。
如果HSE振荡器被直接或间接地作为系统时钟,(间接的意思是:它被作为PLL输入时钟或通过 PLL2,并且PLL时钟被作为系统时钟),时钟故障将导致系统时钟自动切换到HSI振荡器,同时 外部HSE振荡器被关闭。在时钟失效时,如果HSE振荡器时钟(直接的或通过PLL2)是作为PLL 的输入时钟,PLL也将被关闭。

7.2.8

RTC时钟
通 过 设 置 备 份 域 控 制 寄 存 器 (RCC_BDCR) 里 的 RTCSEL[1:0] 位 , RTCCLK 时 钟 源 可 以 由 HSE/128、LSE或LSI时钟提供。除非备份域复位,此选择不能被改变。 LSE时钟在备份域里,但HSE和LSI时钟不是。因此:
83/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC) ● 如果LSE被选为RTC时钟: ─ ─ ─ ─ 只要VBAT维持供电,尽管VDD供电被切断,RTC仍继续工作。 ● 如果LSI被选为自动唤醒单元(AWU)时钟:

STM32F10xxx参考手册

如果VDD供电被切断, AWU状态不能被保证。有关LSI校准,详见7.2.5节:LSI时钟。 如果VDD供电被切断或内部电压调压器被关闭(1.8V域的供电被切断),则RTC状态不确 定。 必须设置电源控制寄存器(见4.4.1节:电源控制寄存器(PWR_CR))的DPB位(取消后备区 域的写保护)为’1’。

● 如果HSE时钟128分频后作为RTC时钟:

7.2.9

看门狗时钟
如果独立看门狗已经由硬件选项或软件启动,LSI振荡器将被强制在打开状态,并且不能被关 闭。在LSI振荡器稳定后,时钟供应给IWDG。

7.2.10

时钟输出
微控制器允许输出时钟信号到外部MCO引脚。 相应的GPIO端口寄存器必须被配置为相应功能。以下8个时钟信号可被选作MCO时钟: ● SYSCLK ● HSI ● HSE ● 除2的PLL时钟 ● PLL2时钟 ● PLL3时钟除以2 ● XT1外部3~25MHz振荡器(用于以太网) ● PLL3时钟(用于以太网) 在MCO上输出的时钟必须小于50MHz(这是I/O端口的最大速度)。 时钟的选择由时钟配置寄存器(RCC_CFGR)中的MCO[3:0]位控制。

84/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)

STM32F10xxx参考手册

7.3
7.3.1

RCC寄存器
请参考第1章中有关寄存器描述中用到的缩写。

时钟控制寄存器(RCC_CR)
偏移地址: 0x00 复位值: 0x000 XX83,X代表未定义 访问: 无等待状态, 字, 半字 和字节访问

31

30 保留

15

14

29 28 27 26 PLL3 PLL3 PLL2 PLL2 RDY ON RDY ON r rw r rw 13 12 11 10 HSICAL[7:0]

25 24 PLL PLLON RDY r rw 9 8

23

22 保留

21

20

7

6

5

4

19 CSS ON rw 3

18 HSE BYP rw 2 保留

HSITRIM[4:0] r r r rw rw rw rw rw

r

r
位29

r
位31:30

r

r

17 16 HSE HSE RDY ON r rw 1 0 HSI HSION RDY r rw

保留,始终读为0。 PLL3RDY:PLL3时钟就绪标志 (PLL3 clock ready flag) PLL3锁定后由硬件置’1’。 0:PLL3未锁定; 1:PLL3锁定。

位28

PLL3ON:PLL3使能 (PLL3 enable) 由软件置’1’或清零以开启或关闭PLL3。 当进入待机和停止模式时,该位由硬件清零。 0:PLL3关闭; 1:PLL3使能。

位27

PLL2RDY:PLL2时钟就绪标志 (PLL2 clock ready flag) PLL2锁定后由硬件置’1’。 0:PLL2未锁定; 1:PLL2锁定。

位26

PLL2ON:PLL2使能 (PLL2 enable) 由软件置’1’或清零以开启或关闭PLL2。 当进入待机和停止模式时,该位由硬件清零。当PLL2时钟被间接地作为系统时钟时(即它被用 作PLL时钟的输入,最终被用于系统时钟),该位不能被清零。 0:PLL2关闭; 1:PLL2使能。

位25

PLLRDY:PLL时钟就绪标志 (PLL clock ready flag) PLL锁定后由硬件置’1’。 0:PLL未锁定; 1:PLL锁定。

位24

PLLON:PLL使能 (PLL enable) 由软件置’1’或清零以开启或关闭PLL。 当进入待机和停止模式时,该位由硬件清零。当PLL时钟被用作或被选择将要作为系统时钟 时,该位不能被清零。在清除这个位之前,软件必须先关闭全速USB OTG的时钟。 0:PLL关闭; 1:PLL使能。

位23:20

保留,始终读为0。

85/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)
位19 CSSON:时钟安全系统使能 (Clock security system enable) 由软件置’1’或清零以使能时钟监测器。 0:时钟监测器关闭; 1:如果外部3-25MHz振荡器就绪,时钟监测器开启。 位18 HSEBYP:外部高速时钟旁路 (External high-speed clock bypass)

STM32F10xxx参考手册

在调试模式下由软件置’1’或清零来旁路外部晶体振荡器。只有在外部3-25MHz振荡器关闭的情 况下,才能写入该位。 0:外部3-25MHz振荡器没有旁路; 1:外部3-25MHz外部晶体振荡器被旁路。 位17 HSERDY:外部高速时钟就绪标志 (External high-speed clock ready flag) 由硬件置’1’来指示外部3-25MHz振荡器已经稳定。在HSEON位清零后,该位需要6个外部325MHz时钟周期清零。 0:外部3-25MHz时钟没有就绪; 1:外部3-25MHz时钟就绪。 位16 HSEON:外部高速时钟使能 (External high-speed clock enable) 由软件置’1’或清零。 当进入待机和停止模式时,该位由硬件清零,关闭外部3-25MHz振荡器。当外部3-25MHz振荡 器被用作或被选择将要作为系统时钟时,该位不能被清零。 0:HSE振荡器关闭; 1:HSE振荡器开启。 位15:8 位7:3 HSICAL[7:0]:内部高速时钟校准 (Internal high-speed clock calibration) 在系统启动时,这些位被自动初始化 HSITRIM[4:0]:内部高速时钟调整 (Internal high-speed clock trimming) 由软件写入来调整内部高速时钟,它们被叠加在HSICAL[5:0]数值上。 这些位在HSICAL[7:0]的基础上,让用户可以输入一个调整数值,根据电压和温度的变化调整 内部HSI RC振荡器的频率。 默认数值为16,可以把HSI调整到8MHz±1%;每步HSICAL的变化调整约40kHz。 位2 位1 保留,始终读为0。 HSIRDY:内部高速时钟就绪标志 (Internal high-speed clock ready flag) 由硬件置’1’来指示内部8MHz振荡器已经稳定。在HSION位清零后,该位需要6个内部8MHz振 荡器周期清零。 0:内部8MHz振荡器没有就绪; 1:内部8MHz振荡器就绪。 位0 HSION:内部高速时钟使能 (Internal high-speed clock enable) 由软件置’1’或清零。 当从待机和停止模式返回或用作系统时钟的外部3-25MHz振荡器发生故障时,该位由硬件置’1’ 来启动内部8MHz的RC振荡器。当内部8MHz振荡器被直接或间接地用作或被选择将要作为系 统时钟时,该位不能被清零。 0:内部8MHz振荡器关闭; 1:内部8MHz振荡器开启。

7.3.2

时钟配置寄存器(RCC_CFGR)
偏移地址: 0x04 复位值: 0x0000 0000 访问: 0到2个等待周期,字,半字和字节访问 只有当访问发生在时钟切换时,才会插入1或2个等待周期。

86/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)
31 30 保留 rw 15 14 13 12
PPRE2[2:0]

STM32F10xxx参考手册
25 24 23 22 21 20 19 18 17
PLL XTPRE

29

28

27

26

MCO[3:0] rw 10 rw 9
PPRE1[2:0]

OTGFS 保留 PRE

PLLMUL[3:0] rw 5 rw 4 rw 3 rw 2

rw 8 7

rw 6

rw 1

16 PLL SRC rw 0

11

ADCPRE[1:0]

HPRE[3:0]

SWS[1:0]

SW[1:0]

rw

rw

rw
位31:28 位27:24

rw

rw

rw

rw

rw

rw

rw

rw

rw

r

r

rw

rw

保留,始终读为0。 MCO: 微控制器时钟输出 (Microcontroller clock output) 由软件置’1’或清零。 00xx:没有时钟输出; 0100:系统时钟(SYSCLK)输出; 0101:内部8MHz的RC振荡器时钟输出; 0110:外部3-25MHz振荡器时钟输出; 0111:PLL时钟2分频后输出。 1000:PLL2时钟输出 1001:PLL3时钟2分频后输出。 1010:XT1外部3-25MHz振荡器时钟输出(为以太网) 1011:PLL3时钟输出(为以太网) 注意:- 该时钟输出在启动和切换MCO时钟源时可能会被截断。 - 在系统时钟作为输出至MCO引脚时,请保证输出时钟频率不超过50MHz (I/O口最高频率)

位22

OTGFSPRE:全速USB OTG预分频 (USB OTG FS prescaler) 由软件置’1’或清’0’来产生48MHz的全速USB OTG时钟。在RCC_APB1ENR寄存器中使能全速 OTG时钟之前,必须保证该位已经有效。如果全速OTG时钟被使能,该位不能被清’0’。 0:PLL VCO时钟(2xPLLCLK)被除以3(必须配置PLL输出为72MHz); 1:PLL VCO时钟(2xPLLCLK)被除以2(必须配置PLL输出为48MHz)。

位21:18

PLLMUL:PLL倍频系数 (PLL multiplication factor) 由软件设置来确定PLL倍频系数。只有在PLL关闭的情况下才可被写入。 000x:保留 0010:PLL 4倍频输出 0011:PLL 5倍频输出 0100:PLL 6倍频输出 0101:PLL 7倍频输出 0110:PLL 8倍频输出 0111:PLL 9倍频输出 警告:PLL的输出频率绝对不能超过72MHz 10xx:保留 1100:保留 1101:PLL 6.5倍频输出 111x:保留

位17

PLLXTPRE:PREDIV1分频因子的低位 (LSB of division factor PREDIV1) 由软件置’1’或清’0’来选择PREDIV1分频因子的最低位。这一位与RCC_CFGR2寄存器的位(0) 是同一位,因此修改RCC_CFGR2寄存器的位(0)同时会改变这一位。 如 果 RCC_CFGR2 寄 存 器 的 位 [3:1] 为 ’000’ , 则 该 位 控 制 PREDIV1 对 输 入 时 钟 进 行 2 分 频 (PLLXPRE=1),或不对输入时钟分频(PLLXPRE=0)。 只能在关闭PLL时才能写入此位。

位16

PLLSRC:PLL输入时钟源 (PLL entry clock source) 由软件置’1’或清’0’来选择PLL输入时钟源。只能在关闭PLL时才能写入此位。 0:HSI振荡器时钟经2分频后作为PLL输入时钟 1:PREDIV1输出作为PLL输入时钟。 注:当改变主PLL的输入时钟源时,必须在选定了新的时钟源后才能关闭原来的时钟源。

87/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)
位15:14 ADCPRE[1:0]:ADC预分频 (ADC prescaler) 由软件置’1’或清’0’来确定ADC时钟频率 00:PCLK2 2分频后作为ADC时钟 01:PCLK2 4分频后作为ADC时钟 10:PCLK2 6分频后作为ADC时钟 11:PCLK2 8分频后作为ADC时钟 位13:11

STM32F10xxx参考手册

PPRE2[2:0]:高速APB预分频(APB2) (APB high-speed prescaler (APB2)) 由软件置’1’或清’0’来控制高速APB2时钟(PCLK2)的预分频系数。 0xx:HCLK不分频 100:HCLK 2分频 101:HCLK 4分频 110:HCLK 8分频 111:HCLK 16分频

位10:8

PPRE1[2:0]:低速APB预分频(APB1) (APB low-speed prescaler (APB1)) 由软件置’1’或清’0’来控制低速APB1时钟(PCLK1)的预分频系数。 0xx:HCLK不分频 100:HCLK 2分频 101:HCLK 4分频 110:HCLK 8分频 111:HCLK 16分频 警告:软件必须保证APB1时钟频率不超过36MHz。

位7:4

HPRE[3:0]: AHB预分频 (AHB Prescaler) 由软件置’1’或清’0’来控制AHB时钟的预分频系数。 0xxx:SYSCLK不分频 1000:SYSCLK 2分频 1001:SYSCLK 4分频 1010:SYSCLK 8分频 1011:SYSCLK 16分频 1100:SYSCLK 64分频 1101:SYSCLK 128分频 1110:SYSCLK 256分频 1111:SYSCLK 512分频

注意:当AHB时钟的预分频系数大于1时,必须开启预取缓冲器。详见闪存读取(第2.3.3节)。 警告:当使用以太网模块时,AHB的时钟频率必须至少为25MHz。 位3:2 SWS[1:0]:系统时钟切换状态 (System clock switch status) 由硬件置’1’或清’0’来指示哪一个时钟源被作为系统时钟。 00:HSI作为系统时钟; 01:HSE作为系统时钟; 10:PLL输出作为系统时钟; 11:不可用。 位1:0 SW:系统时钟切换 (System clock switch) 由软件置’1’或清’0’来选择系统时钟源(SYSCLK)。 在从停止或待机模式中返回时或直接或间接作为系统时钟的HSE出现故障时,由硬件强制选择 HSI作为系统时钟(如果时钟安全系统已经启动) 00:HSI作为系统时钟; 01:HSE作为系统时钟; 10:PLL输出作为系统时钟; 11:不可用。

7.3.3

时钟中断寄存器(RCC_CIR)
偏移地址: 0x08 复位值: 0x0000 0000 访问:无等待周期, 字, 半字 和字节访问
88/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)
31 30 29 28 保留 27 26 25 24 23

STM32F10xxx参考手册
22 21 20 19 18 PLL3 PLL2 PLL HSE HIS CSSC RDYC RDYC RDYC RDYC RDYC w w w w w w 7
CSSF

17
LSE RDYC

w 1
LSE RDYF

16 LSI RDYC w 0
LSI RDYF

15
保留

14

13

12

11

10

9

8

6
PLL3 RDYF

5
PLL2 RDYF

4
PLL RDYF

3
HSE RDYF

2
HSI RDYF

PLL3 PLL2 PLL HSE HSI LSE LSI RDYIE RDYIE RDYIE RDYIE RDYIE RDYIE RDYIE

rw

rw
位31:24 位23

rw

rw

rw

rw

rw

r

r

r

r

r

r

r

r

保留,始终读为0。 CSSC:清除时钟安全系统中断 (Clock security system interrupt clear) 由软件置’1’来清除CSSF安全系统中断标志位CSSF。 0:无作用; 1:清除CSSF安全系统中断标志位。

位22

PLL3RDYC:清除PLL3就绪中断 (PLL3 ready interrupt clear) 由软件置’1’来清除PLL3就绪中断标志位PLL3RDYF。 0:无作用; 1:清除PLL3就绪中断标志位PLL3RDYF。

位21

PLL2RDYC:清除PLL2就绪中断 (PLL2 ready interrupt clear) 由软件置’1’来清除PLL2就绪中断标志位PLL2RDYF。 0:无作用; 1:清除PLL2就绪中断标志位PLL2RDYF。

位20

PLLRDYC:清除PLL就绪中断 (PLL ready interrupt clear) 由软件置’1’来清除PLL就绪中断标志位PLLRDYF。 0:无作用; 1:清除PLL就绪中断标志位PLLRDYF。

位19

HSERDYC:清除HSE就绪中断 (HSE ready interrupt clear) 由软件置’1’来清除HSE就绪中断标志位HSERDYF。 0:无作用; 1:清除HSE就绪中断标志位HSERDYF。

位18

HSIRDYC: 清除HSI就绪中断 (HSI ready interrupt clear) 由软件置’1’来清除HSI就绪中断标志位HSIRDYF。 0:无作用; 1:清除HSI就绪中断标志位HSIRDYF。

位17

LSERDYC:清除LSE就绪中断 (LSE ready interrupt clear) 由软件置’1’来清除LSE就绪中断标志位LSERDYF。 0:无作用; 1:清除LSE就绪中断标志位LSERDYF。

位16

LSIRDYC:清除LSI就绪中断 (LSI ready interrupt clear) 由软件置’1’来清除LSI就绪中断标志位LSIRDYF。 0:无作用; 1:清除LSI就绪中断标志位LSIRDYF。

位15 位14

保留,始终读为0。 PLL3RDYIE:PLL3就绪中断使能 (PLL3 ready interrupt enable) 由软件置’1’或清’0’来使能或关闭PLL3就绪中断。 0:PLL3就绪中断关闭; 1:PLL3就绪中断使能。

89/754
参照2009年12月 RM0008 Reference Manual 英文第10版 本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本

互联型产品的复位和时钟控制(RCC)
位13 PLL2RDYIE:PLL2就绪中断使能 (PL2L ready interrupt enable) 由软件置’1’或清’0’来使能或关闭PLL2就绪中断。 0:PLL2就绪中断关闭; 1:PLL2就绪中断使能。 位12 PLLRDYIE:PLL就绪中断使能 (PLL ready interrupt enable) 由软件置’1’或清’0’来使能或关闭PLL就绪中断。 0:PLL就绪中断关闭; 1:PLL就绪中断使能。 位11 HSERDYIE:HSE就绪中断使能 (HSE ready interrupt enable) 由软件置’1’或清’0’来使能或关闭外部3-25MHz振荡器就绪中断。 0:HSE就绪中断关闭; 1:HSE就绪中断使能。 位10 HSIRDYIE:HSI就绪中断使能 (HSI ready interrupt enable) 由软件置’1’或清’0’来使能或关闭内部8MHz RC振荡器就绪中断。 0:HSI就绪中断关闭; 1:HSI就绪中断使能。 位9 LSERDYIE:LSE就绪中断使能 (LSE ready interrupt enable) 由软件置’1’或清’0’来使能或关闭外部32kHz RC振荡器就绪中断。 0:LSE就绪中断关闭; 1:LSE就绪中断使能。 位8 LSIRDYIE:LSI就绪中断使能 (LSI ready interrupt enable) 由软件置’1’或清’0’

相关文章:
STM32_参考手册-中文.pdf
STM32_参考手册-中文.pdf_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档STM32_参考手册-中文.pdf_电子/电路_工程科技_专业资料。SPI 接口 ...
STM32F207中文数据手册
STM32F207中文数据手册_信息与通信_工程科技_专业资料。作者为了写学位论文之便翻译的STM32F207数据手册,不是权威之著,仅供参考。...
用户参考手册中文版
STM32Fxxx中文参考手册... 754页 2下载券 M218用户参考手册 76页 2下载券...MilkoScan FT 120 乳品分析仪用户参考手册 MilkoScan FT-120 乳品分析仪 用户...
STM32固件库使用手册的中文翻译
STM32固件库使用手册中文翻译_计算机软件及应用_IT/计算机_专业资料。STM32固件...2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准 文档和库规范 1....
STM32F207中文数据手册
STM32F205xx 和 STM32F207xx 数据手册必须结合 STM32F20x/STM32F21x 参考手册一 起阅读。在整个文档中,他们被称为 STM32F20x 设备。 有关内部闪存存储器...
STM8L中文参考手册-2
STM8L中文参考手册-2_电子/电路_工程科技_专业资料。STM8L中文参考手册,在...系统时钟源 101 / 32:系统时钟源 110 / 64:系统时钟源 111 / 128:系统...
STM3210E-EVAL开发板中文手册
49 参考英文第二版 3 UM0549 用户手册第一章 STM3210E-EVAL 开发板开发板的硬件功能描述 STM3210E-EVAL开发板提供了一个评估和测试stm32f10x系列 微处理器...
STM32F4xxx 参考手册学习摘录
STM32F4xxx 参考手册学习摘录_计算机硬件及网络_IT/计算机_专业资料。2 存储器...php学习中文参考手册 47页 免费 STM32F4xxx的CORTEX-M4内... 243页 1下载券...
STM32F101xx 和STM32F103xx的参考手册,ARM 内核32 位高性能微控制器
STM32F101xx 和STM32F103xx ARM 内核 32 位高性能微控制器导言本参考手册针对应用开发,提供关于如何使用 STM32F101xx 和STM32F103xx 微控制器的存储器 和外设...
中文stm32f103
中文stm32f103_信息与通信_工程科技_专业资料。word版本的中文stm32f103系列手册...有关Cortex-M3的信息,请参考《Cortex-M3技术参考手册》 2 规格说明 STM32F103...
更多相关标签:
stm32 | stm32中文数据手册 | stm32中文手册 | stm32自学笔记 | stm | stm32f0中文参考手册 | stm32f4中文参考手册 | stm32参考手册 |