本文主要是介绍STM32F1 - 时钟树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Clock Tree
- 1> 总框图
- 2> HSE 高速外部时钟
- 3> LSE 低速外部时钟
- 4> HSI 高速内部时钟
- 5> 时钟使能控制
1> 总框图
STM32F103ZET6:
2> HSE 高速外部时钟
HSE: 高速外部时钟(High Speed External clock signal)
外接晶振8MHz,为保证STM32工作稳定,选择外部晶振提供时钟源;
SYSCLK:72MHz
外部晶振【8MHz】 >> 经过2选1选择器【PLL Source】>>
锁相环【PLL】倍频(9倍)为,8X9 = 72MHz >>
3选1选择器【System Clock】 >> SYSCLK设置为(72MHz)>>
分频器【AHB Prescaler】不分频 >> HCLK=72MHz
APB1:36MHz
72MHz送到分频器【APB1 Prescaler】2分频 ,为72÷2 = 36MHz;
为APB1上挂的外设使用;
APB2:72MHz
72MHz送到分频器【APB1 Prescaler】不分频 ,为72÷1 = 72MHz;
为APB2上挂的外设使用;
3> LSE 低速外部时钟
LSE: 低速外部时钟(Low Speed External clock signal)
外部晶振32.768KHz:为实时时钟RTC单元,提供时钟源。
2 ^ 15 = 32768, 哦哦哦,这么巧;
4> HSI 高速内部时钟
HSI: 高速内部时钟(High Speed Internal clock signal)
STM32F103ZET6 芯片内部设计了【8MHz】的RC振荡器
不需要外部晶振就可以为整个MCU提供时钟系统;
时钟频率精度较差,把HSI的8MHz输入到PLL,
可以产生最高64MHz的SYSCLK,小于外部时钟HSE的72MHz;
产品设计一般使用外部晶振;
刚开始上电时,由HSI提供时钟,可以由软件程序切换为HSE;
5> 时钟使能控制
STM32F10ZET6的许多外设时钟,
都可以通过一个【与门】来控制某个外设模块时钟的打开和关闭,
并且上电默认状态是,关闭所有外设时钟,需要哪个,必须先打开时钟;
这样做纯纯多余吗?,NO,NO,NO,是为了降低功耗。
就像滴水灌溉一样,需要哪,浇哪!
这篇关于STM32F1 - 时钟树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!