該程序放入延時函數就發送錯誤,實現不了功能,把延時函數注釋掉又可以實現。
究竟是什么問題導致的?
1. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 2. { 3. HAL_Delay(100);//消抖,通過延時然后讀取按鍵電平,達到消抖的效果。 4. switch(GPIO_Pin) 5. { 6. case KEY_UP_Pin: 7. if(KEY_UP==1) 8. { 9. HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET); 10. HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET); 11. } 12. break; 13. case KEY2_Pin: 14. if(KEY2==0) 15. { 16. HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET); 17. } 18. break; 19. case KEY1_Pin: 20. if(KEY1==0) 21. { 22. HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET); 23. } 24. break; 25. case KEY0_Pin: 26. if(KEY0==0) 27. { 28. HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET); 29. HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET); 30. } 31. break; 32. } 33. }
|