初级会员, 积分 133, 距离下一级还需 67 积汾 |
|
||
新手上路, 积分 39, 距离下一级还需 11 积分 |
|
||
中级会员, 积分 271, 距离下一级还需 229 积分 |
|
||
与其相濡以沫,不如相望江湖! |
|||
初级会员, 积分 133, 距离下一级还需 67 积分 |
|
||
初级会员, 积分 66, 距离下一级还需 134 积分 |
|
||
初级会员, 积分 109, 距离丅一级还需 91 积分 |
|
||
初级会员, 积分 109, 距离下一级还需 91 积分 |
|
||
中级会员, 积分 469, 距离下一级还需 31 积分 |
|
||
新手上路, 积分 38, 距离下一级还需 12 积分 |
|
||
新手上路, 积分 38, 距离下一级还需 12 积分 |
|
||
初級会员, 积分 95, 距离下一级还需 105 积分 |
|
||
初级会员, 积分 70, 距离下一级还需 130 积分 |
|
||
RCC时钟模块并不好理解初次接触峩也是一头雾水,而且我真正掌握它的时候也比较晚是我在学习uC/os-II,需要分析时钟时才有了深刻认识但在学习中我却一定要把放在了前列,因为这是整个嵌入式最重要的基础之一可以说是M3芯片的心脏。初学者理解是比较困难但是掌握清晰对于嵌入式操作系统特别是Timer定時器以及通讯领域具有重大意义。
下面进入正题先上一张RCC模块的结构图:
初看此图是不是感觉太复杂了,事实上我第一次看这张图的时候也是的完全理不清结构,不过不用担心下面我就分层带你来理解这幅图。
(1)时钟源(4个晶振和时钟源1个中介源)
HSE(Osc):外部高速晶振和时钟(与电路设计时选择有关,25MHz)
此外APB1APB2外设时钟除了给对应外设区域提供时钟外,还可通过TIMERX Prescaler分配不同的定时器时钟
IWDGCLK:独立看门狗时钟,来源LSI
从上面看我们前面学到的GPIOD外设还有后面的USART等的时钟都没有提到,为什么其实它们包含在PCLK1,PCLK2这两个外设区域时钟里也就是说他們的外设时钟来源于该区域的时钟。下面是STM32Fxxx固件函数库中15.2.22以及15.2.23所提到的图包含所有外设对应的区域:
了解了这些其实已经对系统时钟掌握差不多了,下面我就以寄存器控制方式展现嵌入式时钟的配置(库函数操作对于理解时钟配置过程的帮助并不大特别只是单纯调用而沒有理解每个函数内容的情况下)。
(4)系统时钟配置实例(以使用HSE晶振和时钟最后系统时钟为50MHZ为例)
注:RCC寄存器功能可参考《STM32中文参考手冊》6.3(互联型产品)
通过上述方式就完成了时钟的一般外设的时钟初始化设置,配置系统时钟50MHZAPB2外设时钟50MHZ,APB1外设时钟25MHZ理解了这些,延时時间和通讯速率等通过计算即可精确的知晓这对于整个stm32的学习以及后续理解嵌入式实时操作系统都具有重要意义。
声明:本文内容及配圖由入驻作者撰写或者入驻合作网站授权转载文章观点仅代表作者本人,不代表电子发烧友网立场文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题请联系本站作侵删。