一、微项目实现目标:
检测旋转编码器模式下,检测旋转编码器的转动计数值及转速。并且区分转向,一侧转动增加cout,转速值为正,一侧转动减少count,转速值为负;

二、微项目硬件配置需求:
1,stm32F103C8T6核心板一块
2,0.96寸OLED显示,用于显示计数
3,旋转编码器,反馈正交信号脉冲
三、前置知识:
1,编码器计数模式框图
①信号流:
两路GIPO输入---滤波器----边沿检测极性选择---输入TI1FP1和TI2FP2给到编码器接口---根据相位模式(T1和T2的相位之差)判断CNT是向上计数还是向下计数-----经过分频器处理,最后实现计数
②计数模式
如果一直向下计数到0,在继续计数时,则寄存器数据由于无符号整型缘故,会变成65535,由于数据以补码的形式存储,则强转为int时刻,会变成-1;
③旋转编码器的输入波形情况
正转时刻,A相输出超出B相输出90度
反转时刻,A相输出滞后B相输出90度
④设置正相模式与反相模式
就是对于计数模式的一次反向处理,并对应到原本的计数模式上(一般用的较少)
反向之后

四、代码逻辑分析:
①打开TIM3和GPIOA的时钟
②配置GPIOA的PA5和PA6
③初始化时基模块(注意,在编码器模式下,不需要配置时钟源

本文详细介绍了如何在STM32F103C8T6平台上实现一个微项目,利用旋转编码器监测其转速和转向,通过TIM3模块配置输入捕获和时钟,以OLED显示计数结果,并提供关键代码示例,包括GPIO初始化和速度测量函数。
最低0.47元/天 解锁文章
3087






