STM32F4直接使用32位定时器tim2计数

2019-07-14 16:24发布

根据st技术手册,F4的定时器tiM2和TIM5是32位定时器,测试发现TIM2->cnt读数只有16位(0-FFFF),求解,有哪里设置不对,还是st有什么问题啊???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
yokoso
2019-07-16 15:26
pmet 发表于 2018-11-1 09:34
库里面是这样的
void TIM_SetCounter(TIM_TypeDef* TIMx, uint32_t Counter)
{

我发现TIM2~TIM5的32位计数器真是一个摆设。

你的那个库函数,其实就是给TIM2_CNT寄存器赋值,我试过了,除非给TIM_CNT的高16位赋值,否则,计数器的高16位永远不会有值。赋值之后,计数器会从赋给的值的基础上往上加,直到溢出变为0x0000 0000。而且当高16位从0xFFFF溢出之后,高16位就永远变为0x0,再也不会有值,只是低16位会不断计数。真是好笑。
用JTAG调试看寄存器的值的。如下图所示:



图1、赋值后,计数器从计数的值基础上往上加:




2、溢出之后,高16位永远为0,只有低16位在不断计数:






3、测试代码

一周热门 更多>