错误1、pc6 pc7被用作其他用途,GPIO模式配置错误。导致计数不准确;
错误2、引脚模式设置错误,应该设置为GPIO_Mode_IPD;//GPIO_Mode_IPU GPIO_Mode_IN_FLOATING 都可以;
错误3 引脚重映射没有开启AFIO时钟;
总结
关于编码器的溢出处理:
网上的检测数值突变的方法不可靠,会有漏检的情况。在滴答定时器中检测encoder的值突变
void SysTick_Handler(void)
{// systick中断,1ms一次
static int encoder[2] = {0 , 0};// 两次编码器读值,用以计算溢出方向
本文总结了在STM32中处理编码器计数和溢出时遇到的常见错误,包括GPIO配置错误、引脚模式设置不当、重映射时钟未开启等。并介绍了两种检测编码器溢出的方法:通过滴答定时器检测计数器值突变,以及使用编码器溢出中断。最后提供了经过测试验证的编码器初始化配置和中断处理代码。
订阅专栏 解锁全文
6131

被折叠的 条评论
为什么被折叠?



