看懂时钟图
在刚开始学习32的时候,并不会在意这些,或者即使看了也看的不是很明白。随着学习的深入,我们发现看门狗、定时器、ADC很多外设都需要我们搞清楚,各自的时钟频率是多少变得很重要。
本文结合正点原子F103RBT6单片机的时钟初始配置进行说明。
为了系统能够稳定运行,在使用时,无论是低速还是高速时钟,都是使用外置的。
外部高速时钟多为晶振为8MHz。外部低速时钟为32.768KHz。
- 项目1
- 项目2
- 项目3
内部低速时钟LSI
- 由图中能看到,LSI为独立看门狗提供时钟源。但是LSI频率不是很稳定。
外部低速时钟LSE
主要是为RTC提供时钟。
- RTC时钟源有三种可以选择:①外部LSE ②外部HSE经过128分频 ③内部LSI
- 对于LSE源,只要VBAT维持供电,尽管VDD供电被切断,RTC仍继续工作。(对于另外两种见参考手册)
外部高速时钟HSE
对于F103的片子,我们多为8M晶振。
时钟源流程:
- 8M经过PLLXTPRE到达PPLMUL,经过9倍频到72MHz,作为PPLCLK;
- PPLCLK往后走也就是SYSCLK为72MHz,然后经过AHB(1分频)往后继续传递;
接下来从上往下,分别说明: - HCLK时钟是直接由AHB传递过来,所以为72MHz;
- 滴答定时器(systick):由AHB经过8分频得到的,为9MHz。(一定会被8分频);
- PCLK1:已经写明了最大为36MHz,所以如果AHB为72MHz的话,APB1一定要经过2分频,才能得到36MHz。
- TIM2-7:因为APB1经过了2分频,所以TIMXCLK得到的频率为APB1*2=72MHz;
- PCLK2: AHB为72MHz,APB2最大能为72MHz,所以直接1分频,得到72MHz;
- TIM2-7:因为APB2为1分频,所以TIMXCLK得到的频率为APB2=72MHz;
结合代码
再看代码的时候,我们很不习惯看固件库,但是这个是及其重要的,虽然看起来很耗时。
其次,就是看英文注释。即使我们不去看具体寄存器配置,也能很清晰的明白,那一句是干什么事情的。
外部高速时钟修改
STM32系列修改外部晶振以及代码的修改(f103、f105为例)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)