STM32HAL嘀嗒定时器
时间: 2023-11-08 10:48:18 浏览: 194
STMHAL的嘀嗒定时器是Systick。Systick是一个24位的向下递减的计数器,它的值每当时钟源到来一个时钟,就会减1。一般情况下,我们将Systick的时钟源设置为系统时钟HCLK,也就是80MHZ。这意味着每过1/80M秒,Systick里的计数器就会减1。
当Systick的重装载数值寄存器的值递减为0时,系统定时器就会产生一次中断。此后,CPU会自动重新装载计数器的值,并且循环逐渐递减。这就是Systick的工作原理。
在使用STM32HAL库函数进行延时时,我们可以使用函数HAL_Delay()实现毫秒级的延时。但有时候我们需要更精确的微秒级延时。为了实现微秒级延时,我们可以使用STM32L433的通用定时器TIM6。
除了Systick定时器以外,STM32L433还有6个定时器:TIM1、TIM2、TIM6、TIM7、TIM15、TIM16。其中,TIM6和TIM7是两个16位的自装载基本定时器,它们只能用于定时功能。而TIM1、TIM2、TIM15、TIM16是通用高级定时器,除了定时功能以外还能作为PWM输出。
要在STM32HAL中使用Systick定时器,我们需要调用函数HAL_Init()进行初始化配置,使能Systick。在函数HAL_RCC_ClockConfig中,我们可以看到将全局变量SystemCoreClock设置为80MHZ,并调用HAL_InitTick(),这样就将Systick的时钟源设置为80MHZ了。
通过以上介绍,我们可以了解到STM32HAL中的嘀嗒定时器是Systick,它是一个24位的向下递减的计数器,用于实现精确的延时功能。同时,我们还了解到STM32L433还有其他的定时器可供使用,如TIM6和TIM7用于实现微秒级的延时功能。
阅读全文