南阳微网站制作,皮具制品 东莞网站建设,wordpress 华哥,wordpress占用空间目录
1. 时钟
2. STM3时钟源#xff08;哪些可以作为时钟信号#xff09;
2.1 HSE时钟 2.1.1 高速外部时钟信号#xff08;HSE#xff09;来源 2.1.2 HSE外部晶体电路配置
2.2 HSI时钟
2.3 PLL时钟
2.4 LSE时钟
2.5 LSI时钟 3. STM32时钟#xff08;哪些系统使用时…目录
1. 时钟
2. STM3时钟源哪些可以作为时钟信号
2.1 HSE时钟 2.1.1 高速外部时钟信号HSE来源 2.1.2 HSE外部晶体电路配置
2.2 HSI时钟
2.3 PLL时钟
2.4 LSE时钟
2.5 LSI时钟 3. STM32时钟哪些系统使用时钟
3.1 系统SYSCLK时钟
3.2 RTC时钟
3.3 看门狗时钟
3.4 时钟输出MOC
4. STM32时钟树
4.1 AHB预分频器
5. STM32时钟配置 1. 时钟 STM32的时钟就是周期性的脉冲50%占空比的方波、正弦波或三角波都可作为STM32的时钟信号。
2. STM3时钟源哪些可以作为时钟信号 STM32时钟源 时钟源时钟范围主要用途HSE高速外部时钟 4~16MMHz 1. 系统时钟 2. 128分频后输入RTC时钟 HSI 高速内部时钟 8MHz 1. 备用时钟源 2. 2分频后作为PLL输入 LSE 低速外部时钟 32.768kHz RTC实时时钟 LSI低速内部时钟40kHz 1. 待机/停机模式下时钟 2.RTC、IDWG、AWU时钟
2.1 HSE时钟 2.1.1 高速外部时钟信号HSE来源
HSE外部晶体/陶瓷谐振器通常使用这种HSE用户外部时钟 2.1.2 HSE外部晶体电路配置 为了减少时钟输出的失真和缩短启动稳定时间晶体 / 陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。 注1.时钟控制寄存器RCC_CR中HSERDY位被置位表示高速外部振荡器稳定 2.时钟控制寄存器RCC_CR中HSEON位表示开启或关闭HSE高速外部时钟 2.2 HSI时钟
HSI时钟 来源内部8MHz振荡器RC振荡器作用 1. 直接作为系统时钟 2.2分频后作为PLL输入 3.如果HSE失效HSI时钟会被作为备用时钟源 优点 1. 不需要额外的外部器件成本较低 2.启动时间比HSE短 缺点 1.校准后时钟频率精度仍然较差 2.RC振荡器精度受电压和环境影响 时钟控制寄存器RCC_CR 1. HSIRDY位置位表示HSI时钟稳定 2.HSION位开启或者关闭HSI时钟
2.3 PLL时钟
PLL锁相环是一种控制系统之所以叫PLL时钟是因为PLL通过调整输入信号HSE、HSI的频率和相位以满足系统对不同频率的要求。
PLL时钟 输入 1. HSI 2分频后输入 2.HSE 使用 1. 输入时钟源稳定后才能使能PLLRCC_CR的HSIRDY或者HSERDY置位 2.使能PLL前需要完成PLL配置选择时钟源、预分频系数、倍频系数
时钟配置寄存器RCC_CFGR: 为何要用倍频器而不是选择一个高频率的晶振
对于稳定运行的电路来说时钟频率越高指令执行越快单位时间内处理的功能也就越多。但是时钟源的时钟频率最高也就16MHz达不到STM32系统时钟72MHz的要求因此需要倍频器将外部时钟频率进行倍频在输入给系统时钟。
倍频涉及到时钟配置寄存器RCC_CFGR: 2.4 LSE时钟
LSE时钟 来源输入外部32.768KHz振荡器外部晶体作用 1. 驱动RTC实时时钟 2. 备份域控制寄存器RCC_BDCRLSERDY置位表示晶体振荡器稳定LSEON表示开启或关闭该时钟 优点 1. 低功耗 2. 精确
2.5 LSI时钟
LSI时钟 来源内部40kHzRC震荡时钟作用 1. 在停机模式/待机模式下保持运行 2. 独立看门狗IDWG时钟、自动唤醒单元AWU时钟 3.控制 /状态寄存器RCC_CSR里的LSIRDY置位表示震荡稳定LSION位控制开启或关闭该时钟 3. STM32时钟哪些系统使用时钟
3.1 系统SYSCLK时钟 SYSCLK为整个芯片提供时钟信号其来源主要有3种 1. HSE作为系统时钟 2. HSI作为系统时钟 3.PLL作为系统时钟又叫做HSE间接作为系统时钟 可在时钟控制寄存器RCC_CR中状态指示位查看当前系统时钟的时钟来源。
另外当系统时钟的时钟源要进行切换时只有目标时钟源准备就绪后时钟源的切换才会发生涉及时钟配置寄存器RCC_CFGR 3.2 RTC时钟 三个输入LSE、LSI、HSE128分频 3.3 看门狗时钟
LSI提供40kHz时钟。如果看门狗被启动则LSI会被强制启动待振荡器稳定后输入给看门狗。
3.4 时钟输出MOC 4. STM32时钟树 图中标红色方框的为时钟源可以看到包括之前介绍的HSE、LSE、PLL、HSI、LSI。
图中标绿色方框的为使用时钟MCO为输出时钟包括SYSCLK、RTC、IWDG、MOC。
除此之外时钟树右侧部分即SYSCLK输出主要包括外设和和AHB。
4.1 AHB预分频器
预分频器可通过配置分频系数调整输出时钟的频率。分频允许系统中不同部分以不同的频率运行以满足不同模块的工作需求。【主时钟SYSCLK、APB1时钟、APB2时钟】 图片来源CSDN King~30侵删 AHB预分频器的分频系数可以选择为1不分频、2、4、6、8、16、64、128、256、512。
涉及寄存器为时钟配置寄存器RCC_CFGR AHB输出到APB1总线和APB2总线其中APB1总线最大时钟频率为36MHz为低速时钟片上挂载低速外设例如看门狗定时器USART2\3\4\5SPI2\3等。APB2总线最大时钟频率为72MHz其上通常为各种外设的1号选手例如USART1、ADC1、SPI1等。
5. STM32时钟配置
看一下STM32是怎么配置系统时钟的。
此处以STM32F10xx系列为例下载STM32固件库后找到system_stm32f10x.c和system_stm32f10x.h两个文件这两个文件是STM32用来配置系统时钟的。它提供了两个函数、一个变量和一些宏定义来进行时钟配置。 可以看到通过SystemInit()函数最终调用SetSSysclockTo72()使用高速外部时钟源最终在PLL锁相环9倍频赋值给系统时钟。AHB、APB1、APB2经过分频系数分频分别得到72MHz、36MHz、72MHz时钟频率。
观察SetSysClock()通过宏定义最终调用所选择的主频率如果为了降低功耗或者需要修改STM的主频可直接修改SYSCLK_FREQ_xxMHz宏定义来修改系统的主频同样可以在system_stm32f10x.c文件中修改。