一、时钟系统框图讲解
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();
注意:在使能任何一个时钟的时候,要等待时钟稳定后才能继续。
上一篇:基于STM32单片机的ADC与DMA配置的介绍与使用
下一篇:ST联手Fieldscale为基于STM32的智能设备带来简单直观的触控体验
设计资源 培训 开发板 精华推荐
- 具有延时启动功能的 LT1185CT 低压差稳压器的典型应用电路
- 10x10cm 1.27mm 穿孔板
- 电池电源管理芯片SY6982EQDC评估板
- LT1170IQ、用于离线应用的 5A 驱动高压 FET 的典型应用
- 使用 ON Semiconductor 的 LM2575-12 的参考设计
- 使用 Analog Devices 的 AD9547BCPZ 的参考设计
- ADA4858-3ACPZ 反相运算放大器增益配置的典型应用电路
- 使用 Analog Devices 的 LT1585ACT 的参考设计
- LT1952EGN-1 演示板、48V 至 3.3V、40A 隔离式四分之一砖电信 DC/DC 转换器
- 使用 ROHM Semiconductor 的 BD45245 的参考设计
- 如何操作手机通讯录中的数据?
- 免费领取 | 射频年度盛会EDI CON VIP全场通票(北京,4.1~3)
- 触摸开关面板(单控+双控)也叫单火取电,发起,研究
- 基于RL78G14的双轮自平衡小车进度贴--总结帖
- 我的老天,发现我的2440 BSP是4.2转5.0的,而在调的SDIO驱动是5.0的;请帮忙选择方案:是重新选一个完全5.0的BSP,还是改这个5.0的SDIO
- 谈谈 common.reg platform.reg project.reg 的关系
- 赠送板子、显示屏、IC
- CCS5 c2000 launchpad程序写入问题
- ECU 的 CAN 刷新简介 -- 欢迎灌水
- 电子学圣经:Paul Horowitz的《The Art of Electronics》