stm32f4的定时器问题

2019-07-21 05:21发布

求助。。。。。。。。。。。。。。谢谢!!!!!!!!!!!!!!!!!!
定时器的配置如下:
void Timer_Config(void) { TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
/* 基础设置*/ TIM_TimeBaseStructure.TIM_Period = 25000;    //计数值    TIM_TimeBaseStructure.TIM_Prescaler = 33600-1;        //预分频,此值+1为分频的除数 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2,TIM_FLAG_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE);
}




我是这么算的:
F4的TIM2频率是168M,
那么按照这个配置后定时应该是168 000 000 ÷ 33600 = 5000  ,也就是一秒钟的时间计数器可以跑到 5000 ,
那么要计数到 25000 的话,计数器要经过 5s 的时间就可以到 25000 这个值。

我配置的现象是正常情况下 led1 闪烁,计数器到后 led2 闪烁。

现在的问题是:秒表测试后实际上要经过 10s 的时间 led2才闪烁,换了几个分频值都是要两倍的时间才达到效果!请问是为什么??????是我算错了还是有其它要注意的地方。。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
wfmartin28
1楼-- · 2019-07-21 21:02
回复【楼主位】yougen1314:
---------------------------------
建议你好好看看数据手册你这样的设置10s是对的!是你计算错了!!TIM2定时器是在APB1上!
wfmartin28
2楼-- · 2019-07-21 23:25
回复【8楼】wfmartin28:
---------------------------------
回复【楼主位】yougen1314:
---------------------------------
你的定时器的工作频率为2500hz!

一周热门 更多>