lianglunfei 发表于 2019-7-18 10:52:44

STM32F446中定时器TIM2如何设置为32位计数?

现在使用STM32F446中的定时器TIM2进行计数,但是计数个数会超过0XFFFF,多说STM32F4系列可以用32位计数,不知道怎么设置呢?请大神指教,谢谢。


库里面定义Period为32位,但是后面的解释又说最大只能到0XFFFF,不知道怎么理解呢?

mikecai 发表于 2019-7-18 11:36:53

用cubeMX 定义STM32F446 定时器TIM 2 parameter settings -->counter period(autoreload)值,可以设成32位啊。

wenyangzeng 发表于 2019-7-18 11:40:50

本帖最后由 wenyangzeng 于 2019-7-18 11:45 编辑

楼主只要仔细阅读官方F446用户手册就可以知道TIM2的CCRx才是32位的:





而TIMx_CNT只是16位的



lianglunfei 发表于 2019-7-18 14:06:53

wenyangzeng 发表于 2019-7-18 11:40
楼主只要仔细阅读官方F446用户手册就可以知道TIM2的CCRx才是32位的:




那是不是可以这样理解:定时器用做捕获时可以到32位,但是要去读这个捕获的数据又只能读到16位?

wenyangzeng 发表于 2019-7-18 14:12:16

lianglunfei 发表于 2019-7-18 14:06
那是不是可以这样理解:定时器用做捕获时可以到32位,但是要去读这个捕获的数据又只能读到16位? ...

TIMx_CNT与TIMx_CCRx是不同的寄存器呀,也就是说TIMx_CNT只能计数到0XFFFF,而TIMx_CCRx可以捕捉计数到0xffffffff

lianglunfei 发表于 2019-7-18 16:08:56

wenyangzeng 发表于 2019-7-18 14:12
TIMx_CNT与TIMx_CCRx是不同的寄存器呀,也就是说TIMx_CNT只能计数到0XFFFF,而TIMx_CCRx可以捕捉计数到0xf ...

那么我在定时器编码器模式下,需要读取计数的值,是用getcounter还是用getcapture呢?

wenyangzeng 发表于 2019-7-18 16:17:46

lianglunfei 发表于 2019-7-18 16:08
那么我在定时器编码器模式下,需要读取计数的值,是用getcounter还是用getcapture呢? ...

判断应该是捕捉模式,只有CCRx才能达到32位

bird0123 发表于 2019-7-18 17:29:45

跟着大神来学习

Kevin201707 发表于 2019-7-19 10:21:18

定时器计数器是16bit的,输入捕获是CCR可以到32bit.
页: [1]
查看完整版本: STM32F446中定时器TIM2如何设置为32位计数?