32为定时器TIM2的CNT首次必须计到0xffffffff是什么原因?

2019-07-14 13:55发布

我设置的重装载值无论多少第一个周期特别长,设置时必须手动将CNT置最大值才行。恳请专家指导!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
huhuiyun
1楼-- · 2019-07-14 17:41
TOPCB 发表于 2019-3-1 18:14
配置发一下,TIM有向上计数和向下计数。

void TIM2_init(void)
{
        RCC->APB1ENR|=0x01;
        TIM2->CR1=0x80;
        TIM2->DIER=0x0001;
        TIM2->ARR=2000;
  TIM2->PSC=99;
        TIM2->CNT=0xffffffff;
        TIM2->CR1|=1;
        NVIC->ISER[0]|=1<<28;
        NVIC->IP[28]|=0xf0;
}
huhuiyun
2楼-- · 2019-07-14 20:02
TOPCB 发表于 2019-3-1 18:14
配置发一下,TIM有向上计数和向下计数。

求大神指教
huhuiyun
3楼-- · 2019-07-14 22:32
 精彩回答 2  元偷偷看……
TOPCB
4楼-- · 2019-07-15 02:23
用的是哪个芯片?
huhuiyun
5楼-- · 2019-07-15 07:42
TOPCB 发表于 2019-3-1 18:50
用的是哪个芯片?

我用的是 STM32F411RET6
TOPCB
6楼-- · 2019-07-15 13:23
CNT默认值是0。如果CNT不设置,这个时候需要计数到0才能产生更新事件。建议配置是设置CNT值。
楼主可以仿真一下,在不设置CNT值,进入中断以后,CNT的值是多少。

一周热门 更多>