ky040旋转编码器

每转一个刻度,两相均有一个边沿,如下图逻辑分析仪波形所示
在这里插入图片描述
所以在使用stm32的硬件编码器功能时,如果设置为双通道边沿检测,转一次刻度会导致cnt增加两次?
在这里插入图片描述

stm32硬件解码编码器,中断问题:
背景:使用hal库自动配置,通过HAL_TIM_IC_CaptureCallback来打印计数值
目的:使用stm32,tim定时器的ch1 ch2 encoder模式来自动获得编码器的计数值,并且在每次编码器计数增加时触发中断,打印编码器计数值。
问题:在编码器旋转一个刻度时(假设cnt+2),理想状态是触发中断,输出cnt+2的值,但在实际使用时发现,经常转一个刻度不输出(不输出cnt+2),转两个刻度时才输出(直接从cnt跳到cnt+4)。
可能的原因?可能是用错了中断,ic_capture_callback并不是每次cnt++时触发,而是捕获寄存器捕获到上升/下降沿触发(此过程提前于cnt++的时刻,导致进入中断时cnt还没更新?)具体是不是不确定
在这里插入图片描述

在这里插入图片描述
编码器对应绿色回路,cc1,cc2置位为红色回路;如果设置为编码器模式,不能简单通过cc标志位(对应hal库的ic_capture_callback回调函数)来判断cnt更新? 且32应该没有cnt计数器每次更新时会触发的中断。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值