STM32学习笔记【江科协】【6-8】编码器接口测速

PA6和PA7两个引脚不能任意更改,要接到定时器的通道一和通道二上


 代码思路

第一步,RCC开启时钟,开启GPIO和定时器的时钟

第二步,配置GPIO,把PA6和PA7配置成输入模式

第三步,配置时基单元,这里预分频器选择不分频,自动重装选最大65535,这里只需要CNT计数

第四步,配置输入捕获单元,只不过这里输入捕获单元,只有滤波器和极性两个参数有效

第五步,配置编码器模式(这里只需调用库函数即可)

最后,调用TIM_Cmd打开时钟

如果是需要得出编码器的位置,直接读取CNT的值即可

如果是需要测量编码器的速度和方向,则需要固定一段时间取出CNT的值,然后再清零,也就是测频法的思路


 本节要用到的库函数

void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,  uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);

*定时器编码器接口配置

如何选择上拉还是下拉?和外部模块输出的默认状态有关,默认输出高电平则上拉;默认输出低电平则下拉;不确定外部模块输出状态或者外部模块输出功率比较小,选择浮空输入(优点是,没有上下拉电阻影响外部信号;缺点是,当引脚悬空时,没有默认电平了,输入就会受噪声干扰,来回不断的跳变)。但习惯上都选择上拉

过长的delay会阻塞主程序的运行,所以可以选择定时中断替代

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值