yfy123 发表于 2016-5-7 18:34:55

stm32定时器配置求助

void TIM3_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_ClearITPendingBit(TIM3,TIM_IT_Update);

TIM_TimeBaseStructure.TIM_Period =1000;
TIM_TimeBaseStructure.TIM_Prescaler =0;    //72mhz
TIM_TimeBaseStructure.TIM_ClockDivision =0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3,ENABLE);

}
请问如果我这样配置定时器的话,是不是每1/72000秒触发一次中断?
谢谢!

netlhx 发表于 2016-5-7 21:18:33

要改成999,不过这样没意义,CPU光响应中断去了,估计也没响应不了这么快

yfy123 发表于 2016-5-8 09:24:05

netlhx 发表于 2016-5-7 21:18
要改成999,不过这样没意义,CPU光响应中断去了,估计也没响应不了这么快

谢谢,但是我试过900,响应没问题,但是就是不知道是不是会漏掉

yfy123 发表于 2016-5-8 09:24:41

ybhuangfugui 发表于 2016-5-7 21:56
给你参考一下:http://blog.csdn.net/ybhuangfugui/article/details/51324940

谢谢分享参考!

时光虫子 发表于 2016-5-10 08:32:30

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_DeInit(TIM2);             //初始化TIM2为缺省值
TIM_TimeBaseInitStruct.TIM_Period = (10 - 1);      //配置ARR自动重载寄存器
TIM_TimeBaseInitStruct.TIM_Prescaler = (72 - 1);      //配置PSC时钟预分频
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;   //配置时间分割值
TIM_TimeBaseInitStruct.TIM_CounterMode = 0x0000;   //配置计数器向上计算
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);   //初始化
TIM_ClearFlag(TIM2, TIM_FLAG_Update);      //清除溢出中断标志
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);       //打开中断溢出
TIM_Cmd(TIM2, ENABLE);            //失能TIM2定时器

yfy123 发表于 2016-5-11 09:23:47

时光虫子 发表于 2016-5-10 08:32
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_DeInit(TIM2);             //初始化TIM2为缺省值
...

谢谢回答!
页: [1]
查看完整版本: stm32定时器配置求助