详细解析STM32的时钟系统

STM32的时钟系统

一、时钟系统框图

1.1、STM32F10x

83b796c020b48925dbab4c1a96c9a2c5.png

1.2、STM32F40x

67b49a6f84d853c268dc8f62c317a62a.png

二、时钟系统

2.1、STM32F10x时钟源

HSI:RC振荡器,频率8MHz,精度不高
HSE:外接石英/陶瓷晶振(4MHz——16MHz)
LSI:RC振荡器,频率40KHz
LSE:外接晶振,32.768KHz石英晶振

2.2、STM32F40x时钟源

HSI振荡器时钟
HSE振荡器时钟
主 PLL (PLL)时钟

02e9e8152981331ad2ae9afe79074832.png

2.3、系统时钟初始化过程(STM32官方库中默认的初始化值)

2.3.1、参考启动流程可知,执行SystemInit函数和__main函数,在SystemInit中可以找到对应的时钟相关初始化操作

 LDR R0, =

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SysTick是STM32微控制器中的一个系统计时器。它可以用于生成周期性的中断和提供系统计时功能。在STM32中,SysTick寄存器用于配置SysTick计时器,并可以读取当前SysTick计数器的值。 SysTick寄存器包括以下几个部分: 1. Control and Status Register (STK_CTRL):用于配置SysTick计时器的控制和状态寄存器。它包括以下几个位: - ENABLE:使能SysTick计时器。 - TICKINT:使能SysTick中断。 - CLKSOURCE:选择SysTick计时器的时钟源。可以选择内部时钟(HCLK)或外部时钟STM32F4系列芯片支持)。 - COUNTFLAG:SysTick计数器溢出标志位。 2. Reload Value Register (STK_LOAD):用于设置SysTick计时器的重装值。当SysTick计数器减到0时,会产生一个中断(如果TICKINT位被置位),并重新加载STK_LOAD寄存器的值。 3. Current Value Register (STK_VAL):用于读取当前SysTick计数器的值。 4. Calibration Value Register (STK_CALIB):用于校准SysTick计时器的值。它包括以下几个位: - TENMS:每个计数器滴答所代表的时间(以毫秒为单位)。 - SKEW:表示SysTick计时器的精度。如果该位为1,则SysTick计时器的精度不如系统时钟。 - NOREF:表示SysTick计时器的时钟源是否来自外部时钟。如果该位为1,则SysTick计时器的时钟源不是外部时钟。 通过对SysTick寄存器的配置,可以实现周期性的中断、定时器和延时等功能。例如,可以通过设置STK_LOAD寄存器的值和使能SysTick中断,来实现一定时间间隔内产生中断的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值