最精簡的stm32編碼器程序
- #define ROTATE_APAin(2)
- #define ROTATE_BPAin(3)
- s16 DATA=0;
- void EXTI2_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line2) != RESET)
- {
- if(ROTATE_A!=ROTATE_B)
- {
- DATA++;
- }
- elseDATA--;
- EXTI_ClearITPendingBit(EXTI_Line2);
- }
- }
- void main(void)
- {
- SystemInit();
- delay_init(72);
- NVIC_Configuration();
- KEY_Init();
- while(1)
- {
- ;
- }
- }

大家可以觀察圖片,當(dāng)順時針時,A下降沿時, A!=B;當(dāng)逆時針時,A下降沿時,A=B,從而來判斷順時針,還是逆時針。而且這樣實現(xiàn)簡單,只要一個中斷就行了。其實我在別的地方看的思路,然后復(fù)制過來改的。如果遇到AB 輸出的編碼器,大家可以參考下啊。有問題可以提出來,互相學(xué)習(xí)啊、

評論