- #define ROTATE_A PAin(2)
- #define ROTATE_B PAin(3)
- s16 DATA=0;
-
- void EXTI2_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line2) != RESET)
- {
- if(ROTATE_A!=ROTATE_B)
- {
- DATA++;
- }
- else DATA--;
- EXTI_ClearITPendingBit(EXTI_Line2);
- }
- }
-
-
- void main(void)
- {
- SystemInit();
- delay_init(72);
- NVIC_Configuration();
- KEY_Init();
- while(1)
- {
- ;
- }
- }
大家可以观察图片,当顺时针时,A下降沿时, A!=B;当逆时针时,A下降沿时,A=B,从而来判断顺时针,还是逆时针。而且这样实现简单,只要一个中断就行了。其实我在别的地方看的思路,然后复制过来改的。如果遇到AB 输出的编码器,大家可以参考下啊。有问题可以提出来,互相学习啊、
关键字:stm32 编码器程序 『本文转载自网络,版权归原作者所有,如有侵权请联系删除』