Ну так из далека...
Объявление в main.c
Код
/* Private variables ---------------------------------------------------------*/
volatile uint16_t success_scan; //Celewaya wyborka zahwachena
Собственно установка данной переменной происходит в stm32f1xx_it_c
Код
extern volatile uint16_t success_scan;
bla bla bla
/**
* @brief This function handles DMA1 channel1 global interrupt.
*/
void DMA1_Channel1_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
if(DMA1->ISR & DMA_ISR_TCIF1)// Polu4ili polnuyu wyborku
{
if(target_scan == current_scan){
//Dannay wyborka yawlyaetsca celewoy
HAL_ADCEx_MultiModeStop_DMA(&hadc1); //Ostanowka ADC
HAL_TIM_IC_Stop_IT(&htim2, TIM_CHANNEL_1);
//Ura! Epta....
success_scan = 1;
}
else current_scan++; //Increment s4et4ika wyborki
}
/* USER CODE END DMA1_Channel1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);
/* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
/* USER CODE END DMA1_Channel1_IRQn 1 */
}
Код у меня работает нормально, своевременность отработки в железе отслеживаю логическим анализатором
Проблема именно с непонятным поведением среды разработки.
У меня сложилось такое впечатление, что разработка на МК, это не проблема написать рабочий код, а постоянная война с инструментом (студия, программатор/отладчик, луна не стой стороны).