STM32L431xx 系列有 1 个高级定时器(TIM1), 3 个通用定时器(TIM2、TIM15、TIM16),两个基本定时器(TIM6、TIM7),还有两个低功耗定时器(LPTIM1、LPTIM2)。基本、高级、通用定时器间的区别可以参考此博文:http://t.csdn.cn/HUkkR。下面TIM2为例实现us级的延时。
1、设置TMI2参数:参照数据手册中的RCC时钟树,TIM2内部时钟来源是ABP1= 80Mhz ,这个速率对定时器而言太快,且我们的目的是每秒钟产生1M次中断,因此需要对其进行一个预分频处理:
计算器的时钟频率CK_CNT=fck_psc/(PSC+1)=80Mhz/(80-1+1)=1Mhz。因此所以预分频系数设置为80-1,自动重载值为1,得到的计时器更新中断频率即为80Mhz/80/1=1MHz(1Hz即1us)。为了防止中断频繁打断正常程序的执行,因此这里进行设置时不采用中断。


本文介绍了STM32L431xx系列芯片中的不同类型的定时器,如高级定时器TIM1、通用定时器TIM2、TIM15、TIM16,基本定时器TIM6、TIM7以及低功耗定时器LPTIM1、LPTIM2。以TIM2为例,详细阐述了如何设置预分频器实现us级延时,通过HAL库的函数__HAL_TIM_SetCounter、HAL_TIM_Base_Start、__HAL_TIM_GetCounter和HAL_TIM_Base_Stop进行计数器的配置和控制,以达到精确延时的目的。

7439

被折叠的 条评论
为什么被折叠?



