关于STM32和k6x系列正交编码器读值产生的问题

我们在之前参加比赛的过程中偶然间发现了使用不同的处理器之间对编码器的解码方法存在一定的不同。以至于我们在使用输出波形不同的编码器时,会产生处理器无法读值的问题或者读值一直错误的问题。

本次文章主要采用逐飞科技的两款输出波形不同的智能车编码器,以下为编码器实际输出波形:

(以上图片来自:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-9998638002.11.40c2d56cDI9tTa&id=546995321357&qq-pf-to=pcqq.c2c

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-9998638002.13.40c2d56cDI9tTa&id=588657468282&qq-pf-to=pcqq.c2c)

随后我们研究了stm32和k6x系列的两种编码器计数模式的不同之处

首先是stm32系列,我们在查阅了其本身的编程手册之后找到了其编码器模式下的计数方法以及工作模式:

同时对比k6x系列的编码器计数模式的计数方法如下:

 

经过查阅数据手册我们发现stm32的计数器模式是根据t1和t2通道的边缘变化的顺序来确定计数的增加或减少,因此当采用方向编码器时无法通过方向线的高低电平来确定计数的增减。而k6x系列同时拥有两种编码器的计数模式,故两种编码均可在k60上进行准确计数。

若想实现stm32系列方向编码器的读数,我们采用的将方向编码器接入中断中判断高低电平,来决定计数的增加还是减少。同时输入捕获模式和单边编码器模式,都可实现此方法。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值