一.复位
1.系统复位
当发生以下任一事件时,产生一个系统复位
- NRST引脚上的低电平(外部复位)
- 窗口看门狗计数终止(WWDG复位)
- 独立看门狗计数终止(IWDG复位)
- 软件复位(SW复位)
- 低功耗管理复位
2.软件复位
通过将Cortex-M3内核中断应用和复位控制寄存器的SYSRESETREQ位置1,可实现软件复位。
3.低功耗管理复位
4.电源复位
5.复位电路
二.时钟
上图为从STM32CubeMX中截取的关于时钟树的内容,以下关于时钟的介绍可以对照上图进行了解
三种不同的时钟源可被用来驱动系统时钟(SYSCLK)
- HSI振荡器时钟
- HSE振荡器时钟
- PLL时钟
这些设备有以下2种二级时钟源:
- 40KHZ低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。
- 32.768KHZ低速外部晶体也可以用来通过程序选择驱动RTC(RTCCLK)
当不被使用时,任一个时钟源都可被独立的启动或关闭,由此优化系统功耗。
1.当HSI被用于作为PLL时钟的输入时,系统时钟能得到的最大频率是64MHZ
2.用户可通过多个预分频器配置AHB,高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHZ。APB1域的
最大允许频率是36MHZ。SDIO接口的时钟频率固定为HCLK/2。
3.RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上
述时钟或Cortex(HCLK)时钟作为SysTick时钟。 ADC时钟由高速APB2时钟经2、 4、 6或8分频后获得。
(1)HSE时钟
高速外部时钟信号(HSE)由以下两种时钟源产生:
- HSE用户外部时钟
- HSE外部晶体/陶瓷谐振器
为了减少时钟输出的失真和缩短启动稳定时间,晶体/陶瓷谐振器和负载电容器必须尽可能的靠近振荡器引脚。负载电容值必须根据所选振荡器来调整。
(2)HSI时钟
HSI时钟由内部8MHZ的RC振荡器产生,可直接作为系统时钟或在二分频后作为PLL输入。
HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差
(3)PLL
内部PLL可以用来倍频HSI RC的输出时钟或HSE晶体输出时钟。
PLL的设置(选择HIS振荡器除2或HSE振荡器为PLL的输入时钟,和选择倍频因子)必须在其被激活前完成。一旦PLL被激活,这些参数就不能被改动。
如果需要在应用中使用USB接口, PLL必须被设置为输出48或72MHZ时钟,用于提供48MHz的USBCLK时钟。
(4)LSE时钟
LSE晶体是一个32.768kHz的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供一个低功耗且精确的时钟源。
(5)LSI时钟
LSI RC担当一个低功耗时钟源的角色,它可以在停机和待机模式下保持运行,为独立看门狗和自动唤醒单元提供时钟。 LSI时钟频率大约
40kHz(在30kHz和60kHz之间)。
(6)系统时钟
系统复位后, HSI振荡器被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。
只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个时钟源的切换才会发生。在被选择时钟源没有
就绪时,系统时钟的切换不会发生。直至目标时钟源就绪,才发生切换。
(7)RTC时钟
(8)看门狗时钟
(9)时钟输出
微控制器允许输出时钟信号到外部MCO引脚。
以下四个时钟信号可被选作MCO时钟:
- SYSCLK
- HSI
- HSE
- 除2的PLL时钟