stm32定时器中断时间计算
分频值是是指你将系统时钟的频率减小,假设时钟频率是72Mhz,然后分频值是7199,现在你的定时器值就是10kHz,表示每计一个数,然后过了1/(10^4)秒,然后你的重装值就是你的时间了,如果值是9999,就表示定时时间为1s。
TIM_TImeBaseInitTypeDef TIM_TImeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
TIM_TimeBaseStructure.TIM_Period = 9999;
TIM_TimeBaseStructure.TIM_Prescaler = 7199;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE );
TIM_Cmd(TIM3,ENABLE);
定时器中断为1s
STM32定时器配置定时时间总结
定时器的定时 功能
定时器的时钟源选择
定时器的时钟是来自APB1或者APB2时钟线上的倍频器,其最大值是APB1或者APB2时钟的2倍频。
计数器时钟源选择
计数器时钟来源:
1)内部时钟,即是倍频器出来后的时钟;
2)外部时钟模式1,输入引脚(TIx),通常叫做外部输入捕获; 3)外部时钟模式2,外部触发输入(EXT); 4)其他定时器触发;
这里说说外部时钟模式1 和外部时钟模式2 的区别:
从时钟的框图:
当选择为外部从模式1的时候,那么触发控制器完全被冲模式控制被占用了,这个时候就不能用其它从模式(复位、触发、门控)进行控制,而ETR,解决了这个问题。
定时器定时时间计算原理,做定时器的定时时间时,通常是选择内部时钟,下面举例来说明:
更具配置时定时器的计数模式,一般选择为向上计数模式,计数器溢出然后,定时器自动加载计数器的值,从零开始计数,并且产生一个中断。
分屏器:
分频器是用来描述,计数器是经过多少分频。
定时器时钟 T6
选择定时器内部时钟作为计数器的时钟源,这里假设为21M(F4系类可以分频到这个频率)
也就是1S,可以计数 21 000000个脉冲; 一个脉冲占用时间 = 1/21 000000 (s);
那么现在定时500us = 0.0005s;
其中一种组合如下: 重载值 = 500*21-1; 分频值 = 0;