STM32f103c8t6正交编码器读取问题

第一次写博客,还请大佬们多多指教。下面进入正题。
首先我们先要了解编码器的工作原理。电机在带动码盘转动时,码盘会产生A、B两相脉冲信号,二者相位差90度(正交)。即可以根据信号来的先后判断电机转动的方向(顺、逆)。根据得到的脉冲信号多少及码盘线数(**电机每圈所产生脉冲信号数,可以问商家)**及电机减速比就可以算出电机转了多少圈在结合轮的直径便可以算出车走的距离,若加上定时器便可以计算出电机的转速。
那么该如何获取编码器的值呢?(1)通过定时器输入捕获。(2)IO口外部中断来检测边缘信号。这两个思路在单片机上都行的通。但是STM32单片机具有硬件计数方式。下面就讲下该如何去配置软件。
首先呢就是CH1.CH2(通道1、2)的IO口配置。(必须为每个定时器的CH1、CH2,原因下面会讲)由于编码器的输出模式是开漏输出的所以IO口要配为上拉输入模式
编码器模式配置有三种:
TIM_EncoderMode_TI1,计数器仅在TI1的边沿处计数
TIM_EncoderMode_TI2时,计数器仅在TI2的边沿处计数
TIM_EncoderMode_TI12时,计数器在TI1和TI2边沿处均计数
从上面编码器模式来看就不难理解了为啥一定要配置定时器CH1、CH2IO口为编码器读取IO口了。
模式1、模式2基本是一样的,实际中很少去使用,因为误差太大。模式3就是大家熟知的4倍频原理。

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值