前言
欢迎来到我的博客!作为一个对嵌入式有浓厚兴趣的学生,我希望将我所学到的知识和经验分享给他人,帮助更多的人深入理解和掌握STM32的开发。 在接下来的博客中,我将继续分享我在学习STM32方面的经验。我希望通过这个博客能够激发更多人帮助他人学习STM32的热情。
编码器接口
今天我学习的是编码器接口(Encoder Interface),他的原理为:编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。
常见的编码器有旋转编码器,编码器电机等。
在stmf103c8t6中,每个高级定时器和通用定时器都拥有1个编码器接口,基本定时器无编码器接口。使用时要注意!编码器两个输入引脚借用了输入捕获的通道1 CH1和通道2 CH2。要观察引脚图,不能随便接gpio口。
当(A相、B相)出现边沿信号时,就计数自增或自减
如果以A相为参考,可以发现计数两次(B相同理)
如果以A、B相参考,可以发现计数四次,精度更高
还可以看参考手册中的图片
在代码编写上,有以下步骤:
第一步,RCC开启时钟,开启GPIO和定时器的时钟
第二步,配置GPIO(这里举例PA6和PA7,把PA6和PA7配置成输入模式(TIM3_CH1和2))
第三步,配置时基单元
第四步,配置输入捕获单元
第五步,配置编码器接口模式
最后,调用TIM_Cmd,启动定时器