懵☆锤子 发表于 2015-7-29 15:18:20

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

我设置的重装载值无论多少第一个周期特别长,设置时必须手动将CNT置最大值才行。恳请专家指导!

发表于 2015-7-29 15:35:17

配置发一下,TIM有向上计数和向下计数。

懵☆锤子 发表于 2015-7-29 15:52:27

安 发表于 2015-7-29 15:35
配置发一下,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|=1<<28;
      NVIC->IP|=0xf0;
}

懵☆锤子 发表于 2015-7-29 15:52:46

安 发表于 2015-7-29 15:35
配置发一下,TIM有向上计数和向下计数。

求大神指教

懵☆锤子 发表于 2015-7-29 15:53:26

TIM2->CNT=0xffffffff; 为什么没这句就出问题,第一个周期,之后就OK了

发表于 2015-7-29 16:01:27

用的是哪个芯片?

懵☆锤子 发表于 2015-7-29 16:13:22

安 发表于 2015-7-29 16:01
用的是哪个芯片?

我用的是 STM32F411RET6

发表于 2015-7-29 16:46:31

CNT默认值是0。如果CNT不设置,这个时候需要计数到0才能产生更新事件。建议配置是设置CNT值。
楼主可以仿真一下,在不设置CNT值,进入中断以后,CNT的值是多少。

懵☆锤子 发表于 2015-7-30 09:57:05

安 发表于 2015-7-29 16:46
CNT默认值是0。如果CNT不设置,这个时候需要计数到0才能产生更新事件。建议配置是设置CNT值。
楼主可以仿真 ...

不是到重装载值产生更新时间吗。。。。

yanhaijian 发表于 2015-7-30 10:36:40

定时器计数分向上计数和向下计数。
页: [1] 2
查看完整版本: 32为定时器TIM2的CNT为什么首次必须计到0xffffffff