1,首先打开STM32CubeMX,配置一下工程,这里使用的芯片是STM32F103C8T6。
我这里选择了定时器2和3,因为我有两个电机,在定时器模式这边,我们在Combined Channels这个选项里面我们选择Encoder Mode,其实主要就是选择这个
然后计数值我们就填65535
输入滤波我们填个4即可
然后在代码里使能定时器即可
LL_TIM_ClearFlag_UPDATE(TIM2);
LL_TIM_EnableIT_UPDATE(TIM2);
LL_TIM_SetCounter(TIM2, 0);
LL_TIM_EnableCounter(TIM2);
LL_TIM_ClearFlag_UPDATE(TIM3);
LL_TIM_EnableIT_UPDATE(TIM3);
LL_TIM_SetCounter(TIM3, 0);
LL_TIM_EnableCounter(TIM3);
然后直接读取定时器的CNT寄存器即可。
比如我们想实现M法测速,在单位时间读取CNT后然后清0CNT,以此往复就可以进行测速了。