STM32CubeMx配置正交编码器遇到的问题

配置时参考了这个哥们的方法:

http://www.eemaker.com/stm32cubemx-encoder.html

然后我的配置是这样的

配置是没有问题。

调用时出现了问题。

由于配置完了,我担心它立即生效,怕影响运动,然后我就想配置完先把TIM3的时钟关闭:

__HAL_RCC_TIM3_CLK_DISABLE();

这样先不让它使能。

谁知这样是不对的,即使后面我用了MX_TIM3_Init();对定时器进行再次彻底初始化,也是没有用,读到定时器值一直为0.

后来细看了一下那哥们的文章:发现后面倒数2句

HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);

没有用上!!

于是去掉第一句__HAL_RCC_TIM3_CLK_DISABLE();加上HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);

OK!

整个过程有点懵。

后来细想,好像有明白HAL库的套路了:模块配置完并没有立即生效,尤其是定时器,还需要另外一句话来开启!

嗯就这~

 

posted @ 2018-10-20 10:17  Zurro  阅读(2585)  评论(0编辑  收藏  举报