前言
有时我们在初始化STM32高级定时器的时候,发现以初始化STM32基本定时器同样的方法初始化高级定时器定时器不能进入中断,这是因为STM32高级定时器和基本定时器有所区别,下面跟大家介绍下。
stm32高级定时器包含如下图1所示的寄存器:

stm32基本定时器包含如下图2所示的寄存器:

我们发现stm32高级定时器在时基单元中多了个重复次数寄存器,故在配置是加上重复次数配置寄存器的配置即可。
下面是库函数配置TIM1高级定时器和TIM3基本定时器的区别:
//高级定时器1中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
void TIM1_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //时钟使能
//定时器TIM1初始化
TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值

本文详细介绍了STM32高级定时器与基本定时器的区别,重点解释了高级定时器特有的重复次数寄存器及其配置方法,并通过示例对比了高级定时器与基本定时器的初始化过程。
最低0.47元/天 解锁文章
3219

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



