×
单片机 > 单片机程序设计 > 详情

STM32时钟模块 STM32F103RCT6

发布时间:2020-06-05 发布时间:
|

    跟51相比较STM32的时钟模块变得比较复杂起来这主要得益于STM强大的各种功能。对于不同的模块需要用到的时钟频率是不一样的。而较高的频率会造成更多的能量的浪费。以下是我在学习STM32过程中的总结。

    首先我们要明白各个时钟模块的时钟来源。下面这张图是我调用了原子哥的参考手册里面的图。


    首先我们来聊一下时钟的来源(图中标红了的5个数据),时钟源一共有5个。其中的PLLCLK(图中的5号时钟源)是从其他的时钟源转换过来的。下面我分别对这5个时钟源进行一下讲解。

        (1)HSI图中的1号时钟源,是内部高速时钟。其时钟频率为8MHZ

        (2)HSE为高速外部时钟,可以接4-16MHZ的晶振(芯片PD0和PD1之间所接的晶振)。

(3)LSI低速内部时钟,40KHZ 是独立的看门狗唯一的时钟源,同时也可以作为RTC的时钟源

(4)LSE低速外部时钟源,外接32.768KHZ的晶振(PC14和PC15引脚之间),作为RTC的主要时钟源

(5)PLL 时钟来源为HSI/2、HSE、HSE/2


了解了时钟的来源,那么接下来我们就来了解一下这些时钟是如何跟外设相连接起来的。

(1)通过  MCO口(PA8)输出  是用来选择以下时钟(PLL二分频、HSI、HSE、系统时钟)输出用于供给其他外设使用的

(2)作为  RTC时钟源  (来源为LSI、LSE、HSE/128)

        (3)作为  USB时钟 通过PLL时钟源经过1或者1.5倍分频即可得到(USB口所需时钟为48MHZ)

(4)SYSCLK时钟来源为PLL、HSI、HSE,最大频率为72MHZ 可以超频。


这里的SYSCLK所连接的外设很多下面我仔一一做详解

①经过8分频送给cortex的系统时钟即systic

②直接送给cortex作为空闲运行时钟

③送给APB1分频器,APB1输出一路供APB1外设使用(PCLK1最大频率为36MHZ),另一路供给定时器(tim2.3.4)倍频使用

④送给APB2分频器,APB2输出一路供APB2外设使用(PCLK2,最大频率为72MHZ)另一路送给定时器tim1使用


对APB1和APB2所连接的外设这里做进一步讲解 APB1上面接的是低速外设,APB2上面接的是高速外设。具体见下

①APB1:CAN,USB,I²C1,I²C2,UART2,UART3

②UART1,SPI1,TIMER1,ADC1,ADC2,所有普通IO口,第二功能IO口等。


----------------------------------------------------------------------------------------------------------------------------------------------------

以上是我根据原子哥的资料做的总结





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向