历史上的今天
今天是:2025年02月04日(星期二)
2020年02月04日 | STM32单片机的5个时钟源解析
2020-02-04 来源:elecfans
一、时钟系统框图讲解

1. STM32的5个时钟源
a。高速内部时钟 HSI,大约为8MHz
b。高速外部时钟 HSE,晶振取值范围在4M--16M,一般采用8M晶振
c。低速外部时钟 LSE,32.768k晶振,可以作为RTC的时钟源
d。低速内部时钟 LSI,大约为40KHz
e。PLL锁相环时钟
2. 系统时钟
系统时钟SYSCLK的3个来源
a。HSI
b。HSE
c。PLL
3. RTC的时钟来源
a。LSE
b。LSI
c。LSE的128分频
4. 独立看门狗IWDGCLK的时钟来源
LSI
5.USB的时钟USBCLK的来源
最大频率为48MHz
PLL经过预分频器产生1或1.5分频
6. 内部时钟输出MCO,为STM32芯片的一个引脚PA8
a。SYSCLK
b。HSI
c。HSE
d。PLL时钟的2分频
7. APB1总线的时钟,最大到36M
8. APB2总线的时钟,最大到72M
APB,APB1,APB2为外设提供时钟
所有时钟都有时钟使能,只有时钟打开时外设才能使用。
对于时钟的配置

见《STM32中文参考手册》

三、系统时钟系统初始化重要函数
SystemInit();
它的作用是初始化系统时钟,把系统时钟初始化到一个默认的状态,该函数在系统启动之后会自动调用。
在startup_stm32f10x_hd.s文件中:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit //先执行SystemInit()函数
BLX R0
LDR R0, =__main //再执行main()函数
BX R0
ENDP
该函数默认定义系统时钟为72MHz
#define SYSCLK_FREQ_72MHz 72000000
初始化后系统的状态:
SYSCLK 72MHz
AHB 72MHz
PCLK1 36MHz
PCLK2 72MHz
PLL 72MHz
四、系统时钟配置调用函数
RCC_HSE_Configuration();

注意:在使能任何一个时钟的时候,要等待时钟稳定后才能继续。
史海拾趣
|
#include \"stdafx.h\" #include #include int _tmain(int argc, _TCHAR* argv[]) { UINT bufIndex = 0; BYTE buf[262]; DWORD c; &nb ...… 查看全部问答> |
|
各位嵌入式爱好者网友: 我先说一下,我今年27了,一直在做vb的开发,老感觉待不下去了,想去做一些事情,例如创业。我一直是搞技术的,希望通过技术开发一款产品,这点我可以找合作伙伴一起做。 后来就找到了嵌入式开发这里。我要 ...… 查看全部问答> |
|
2440启动代码中有段代码设置大小端如下: ASSERT :DEF:ENDIAN_CHANGE [ ENDIAN_CHANGE ASSERT :DEF:ENTRY_BUS_WIDTH [ ENTRY_BUS_WIDTH=32 b ChangeBigEndian ;DCD 0xea000007 ] [ ENTRY_BUS_WIDTH=16 andeq r14,r7,r0,lsl #20 ;DCD 0x0007 ...… 查看全部问答> |
|
设计制作一个高效LED驱动电路,驱动一个由5只白光LED(现场统一提供)串联组成的发光装置,要求点亮的LED无明显闪烁。整体电路必须采用3.3V单路直流稳压电源供电,不得采用额外供电方式。限定采用TI公司TPS61040作为DC-DC变换器核心芯片。整个电路 ...… 查看全部问答> |
|
没去成车展?没关系!我们来啦——TI汽车电子研讨会7城来袭!带给你最新的汽车资讯和完整解决方案,绝对不容错过! TI提供包括高级驾驶员辅助系统(ADAS),车身电子元件与照明,信息娱乐与仪表盘,混合动力/电动动力传动系统和被动安全等完整解决方 ...… 查看全部问答> |




