第三步:配置定时器的基本功能,首先来了解定时器初始化参数结构体指针,结构体类型是TIM_TimeBaseInitTypeDef,该结构体主要包含5个成员变量: typedef struct { uint32_t TIM_Prescaler; uint32_t TIM_CounterMode; uint32_t TIM_Period; uint32_tTIM_ClockDivision; uint8_tTIM_RepetitionCounter; } TIM_TimeBaseInitTypeDef; 第一个参数TIM_Prescaler是用来设置分频系数的,MM32L0系列的高级定时器TIM1是挂在APB2上。在MM32所有例程中,在每次一启动时,在程序中就已经帮助客户配置好了APB的时钟,在system_MM32L0xx.c中如果您配置相对应的系统时钟,在时钟配置函数中,您可以看到已经对APB1\APB2\AHB的时钟做了配置,默认APB2的时钟是48MHz,所以定时器的时钟需用户根据自己的实际需求进行分频或者不分频操作。
第二个参数是TIM_CounterMode用来配置PWM模式,MM32L0系列的PWM模式有三种:向上计数模式、向下计数模式和中央对齐模式。 1、向上计数模式:例:当 TIMx_CNT < TIMx_CCRx 时,PWM 参考信号 OCxREF为高,
否则低。如果 TIMx_CCRx 中的比较值大于自动重装载值(TIMx_ARR),则 OCxREF保持为‘1’。 2、向下计数模式:当 TIMx_CNT > TIMx_CCRx 时参考信号 OCxREF 为低,否则为高。如果 TIMx_CCRx中的比较值大于 TIMx_ARR 中的自动重装载值,则 OCxREF 保持为‘1’。 3、中央对齐模式:中央对齐模式又分为三种模式,根据不同的 CMS 位的设置,比较标志可以在计数器向上计数时被置‘1’、在计数器向下计数时被置‘1’、或在计数器向上和向下计数时被置‘1’。
第三个参数是TIM_Period用来设置自动重载计数周期值,自动装载寄存器是预先装载的,写或读自动重装载寄存器将访问预装载寄存器。根据在 TIMx_CR1 寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件 UEV时传送到影子寄存器。当计数器达到溢出条件(向下计数时的下溢条件)并当TIMx_CR1 寄存器中的 UDIS位等于 0 时,产生更新事件。 第四个参数是TIM_ClockDivision用来设置时钟分频因子,该变量与后面死区持续时间配置有关,该变量是设置控制寄存器1(TIMx_CR1)的时钟分频因子CKD[1:,这 2 位定义在定时器时钟(CK_INT) 频率、死区时间和由死区发生器与数字滤波器(ETR, TIx) 所用的采样时钟之间的分频比例。 第五个参数是TIM_RepetitionCounter用来设置重复计数值,该功能在上一篇**有详细讲解。
|