这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 最精简的stm32编码器程序

共3条 1/1 1 跳转至

最精简的stm32编码器程序

高工
2019-07-10 15:27:55     打赏
  1. #define ROTATE_A  PAin(2)

  2. #define ROTATE_B PAin(3)

  3. s16 DATA=0;


  4. void EXti2_IRQHandler(void)

  5. {

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

  7.   {

  8.     if(ROTATE_A!=ROTATE_B)

  9.      {

  10.         DATA++;    

  11.      }

  12.         else DATA--;

  13.     EXTI_ClearITPendingBit(EXTI_Line2);

  14.   }

  15. }



  16. void main(void)

  17. {

  18.           SystemInit();

  19.           delay_init(72);

  20.           NVIC_Configuration();

  21.           KEY_Init();

  22.    while(1)

  23.   {

  24.        ;

  25.   }

  26. }


大家可以观察图片,当顺时针时,A下降沿时, A!=B;当逆时针时,A下降沿时,A=B,从而来判断顺时针,还是逆时针。而且这样实现简单,只要一个中断就行了。其实我在别的地方看的思路,然后复制过来改的。如果遇到AB 输出的编码器,大家可以参考下啊。

有问题可以提出来,互相学习啊、




工程师
2019-07-13 22:50:00     打赏
2楼

利用上升沿来判断方向,学习了!


高工
2019-07-15 08:45:32     打赏
3楼

很精简


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]