2016-11-19 23 views
0
void EXTI3_IRQHandler(void){ 


    //Clear the EXTI pending bits 
    NVIC_ClearPendingIRQ(EXTI3_IRQn); 
    EXTI->PR|=(1<<3); 

    count++;  


} 

Это моя процедура прерывания. если нажать кнопку intterrup, и затем счетчик будет увеличен. Я не знаю, как решить проблему с нажатой кнопкой. Пожалуйста, помогите мне!Отказ от обнаружения stm32f4

ответ

0

Обычно это связано с чтением ввода после небольшой задержки.

В обработчике прерываний очистите отложенный бит и установите флаг в значение true.

В вашем основном цикле проверьте, является ли флаг истинным. Если это так, добавьте задержку (например, 20 мс), прочитайте свой ввод и очистите флаг.

Если задержка в вашем приложении неприемлема, выполните то же самое с таймером.