通用定时器模式分为向上计数向下计数和对齐计数模式,当溢出时产生中断
向上计数模式时,从0开始计数到设定值后重新从0开始,向下计数模式相反,向上向下计数模式时,从0计数到指定值后再从指定值向下计数到0
特别注意有的定时器支持向上向下计数,有的只支持单边计数
预分频系数影响计数速度,比如2分频原始频率为48M,则计数慢一半24M
注意定时器分辨率,有的能存储数据更大
中断标志位要软件手动清除,通用定时器参数为两个16位的寄存器,
时间溢出计算公式: 溢出时间=tclk/(计数器值+1)x(预分频系数+1)
100k等于1ms
开启步骤
1.使能通用定时器,在APB1总线上
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
2.初始化通用定时器
TIM_TimeBaseInit(TIM3, &TIM_Timesture);
3.使能通用定时器
TIM_Cmd(TIM3, ENABLE);
4.开启定时器中断
TIM_ITConfig(TIM3, TIM_IT_Update,ENABLE);
5.中断初始化
NVIC_Init(&NVIC_Initstructe);
6.写中断函数
TIM3_IRQHandler(void )