STM32/STM8技术论坛
直播中

李巍

7年用户 1445经验值
私信 关注
[问答]

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

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

回帖(14)

孙婷婷

2019-3-1 06:56:16
配置发一下,TIM有向上计数和向下计数。
举报

李巍

2019-3-1 07:03:52
引用: 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;
}
举报

李巍

2019-3-1 07:10:41
引用: TOPCB 发表于 2019-3-1 18:14
配置发一下,TIM有向上计数和向下计数。

求大神指教
举报

李巍

2019-3-1 07:27:36
TIM2->CNT=0xffffffff; 为什么没这句就出问题,第一个周期,之后就OK了
举报

孙婷婷

2019-3-1 07:32:40
用的是哪个芯片?
举报

李巍

2019-3-1 07:43:03
引用: TOPCB 发表于 2019-3-1 18:50
用的是哪个芯片?

我用的是 STM32F411RET6
举报

孙婷婷

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

李巍

2019-3-1 08:15:55
引用: TOPCB 发表于 2019-3-1 19:17
CNT默认值是0。如果CNT不设置,这个时候需要计数到0才能产生更新事件。建议配置是设置CNT值。
楼主可以仿真一下,在不设置CNT值,进入中断以后,CNT的值是多少。

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

朱梁贡

2019-3-1 08:27:52
定时器计数分向上计数和向下计数。
举报

孙婷婷

2019-3-1 08:38:59
引用: huhuiyun 发表于 2019-3-1 19:34
不是到重装载值产生更新时间吗。。。。

重装也需要满足CNT值以后重装。
举报

李巍

2019-3-1 08:48:10
引用: TOPCB 发表于 2019-3-1 19:57
重装也需要满足CNT值以后重装。

有相关的技术说明吗
举报

孙婷婷

2019-3-1 09:01:22
看手册308页
举报

李巍

2019-3-1 09:10:03
引用: TOPCB 发表于 2019-3-1 20:19
看手册308页

多谢版主大人
举报

孙婷婷

2019-3-1 09:20:50
引用: huhuiyun 发表于 2019-3-1 20:28
多谢版主大人

不客气。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分