Тогда если рассуждать логически, то надо искать где/из-за чего эти флаги сбрасываются ДО входа в обработчик. Если флаг установился а потом сбросился, то в контроллере NVIC запрос все равно остается взведенным и обработчик прерывания вызывается. А флаг уже кем-то/где-то сброшен. Короче - ищите косяк в другом месте.