关于EC11的原理就不说了,网上有很多资料,但是大都采用轮询去调用,有的除了开了编码器TIMER外还开了一个TIMER去轮询,工程大了之后很浪费资源,但是编码器其实也是基于TIMER的,那么编码器中断也是基于定时器的中断,本篇博客利用编码器的定时器溢出中断,相当于只在EC11动作的时候触发中断,具体HAL库配置如下:
第一步开启外部晶振:

第二步设置调试方式,这里我用的STLINK。
第三步设置TIM2Encode编码器,这里注意只能是ch1ch2才有硬件解码功能。

分频值之所以设置为2,是因为下图中的边沿极性设置的是上升沿,以为着捕获到两个上升沿认为是一个脉冲(ch1和ch2的上升沿)。计数值设为1的意思就是捕获到1个脉冲就触发溢出中断。

配置好Encode之后做两个工作,首先将ch1和ch2对应的引脚设置为上拉(pull-up),因为我的EC11没有接上拉引脚。

本文介绍如何通过配置TIM2Encode编码器的定时器溢出中断,实现EC11动作时的高效触发,避免轮询浪费资源。步骤包括开启外部晶振、设置调试方式、配置TIM2编码器、设置中断和NVIC,最后提供主函数回调函数示例。
最低0.47元/天 解锁文章
4091





