Наиболее вероятная причина для меня заключается в том, что обработчик прерываний AD C (включая функции библиотеки ST и представленный вами обратный вызов) запускается слишком часто, так что ISR EXTI, запускаемого кнопкой pu sh, имеет вид подавлено (постоянно или почти постоянно).
Это может произойти еще проще, если вы выбрали минимальное время выборки и режим непрерывного преобразования (потому что выборка и преобразование происходят так часто, как это происходит, и IRQ, который вызывает ваше полный обратный вызов ( HAL_ADC_ConvCmpltCallback () ) может выполняться постоянно.
Для проверки / фальсификации моего предположения, пожалуйста, проверьте
- ваши приоритеты прерываний для AD C и EXTI (и других, которые вы можете иметь в системе)
- что произойдет, если вы выберете более длительный период выборки AD C или замедлите тактовый источник AD C (конечно, без замедления тактовой частоты процессора).
Если это не помогло решить проблему, возможно, вы возможность опубликовать еще один уточненный вопрос.