比较精简的stm32编码器程序

发布者:ping777最新更新时间:2023-01-09 来源: zhihu关键字:编码器程序  中断 手机看文章 扫描二维码
随时随地手机看文章

01.#define ROTATE_A  PAin(2)


02.#define ROTATE_B PAin(3)


03.s16 DATA=0;


04.


05.void EXti2_IRQHandler(void)


06.{


07.  IF(EXTI_GetITStatus(EXTI_Line2) != RESET)


08.  {


09.    if(ROTATE_A!=ROTATE_B)


10.     {


11.        DATA++;    


12.     }


13.        else DATA--;


14.    EXTI_ClearITPendingBit(EXTI_Line2);


15.  }


16.}


17.


18.


19.void main(void)


20.{


21.          SystemInit();


22.          delay_init(72);


23.          NVIC_Configuration();


24.          KEY_Init();


25.   while(1)


26.  {


27.       ;


28.  }


29.}

大家可以观察图片,当顺时针时,A下降沿时, A!=B;当逆时针时,A下降沿时,A=B,从而来判断顺时针,还是逆时针。而且这样实现简单,只要一个中断就行了。

其实是在别的地方看的思路,然后复制过来改的。如果遇到AB 输出的编码器,大家可以参考下啊。


关键字:编码器程序  中断 引用地址:比较精简的stm32编码器程序

上一篇:Keil5软件配置与新建STM32工程的步骤
下一篇:零基础入门stm32需要掌握的知识有那些

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved