ndthome 发表于 2024-2-19 18:05:52

stm32h7 adc怎么可以重新初始化?

在做群脉冲测试时,ADC挂掉了,是否可以重新初始化让ADC重新运行起来?我试了下调用我开机时候的ADC_init()函数,发现跑飞了,


        /* 初始化ADC */
        if (HAL_ADC_Init(&AdcHandle) != HAL_OK)
        {
           Error_Handler(__FILE__, __LINE__);
        }

进入了这个error_handler,需要怎么才来重新让ADC初始化起来呢

ndthome 发表于 2024-2-19 20:40:17

调试时发现,SCB_InvalidateDCache_by_Addr((uint32_t *)ADCxValues, sizeof(ADCxValues)); 这里ADCxValues的数据一直不变,但ADC1寄存器的DR数据是一直在更新的,是不是DMA挂掉了?

eric2013 发表于 2024-2-20 00:14:41

进入了这个error_handler,需要怎么才来重新让ADC初始化起来呢

这个需要先调用DeInit函数,再重新初始化就可以了。

eric2013 发表于 2024-2-20 00:16:44

ndthome 发表于 2024-2-19 20:40
调试时发现,SCB_InvalidateDCache_by_Addr((uint32_t *)ADCxValues, sizeof(ADCxValues)); 这里ADCxValues ...

直接调用SCB_InvalidateDCache/SCB_CleanInvalidateDCache替换这个试试
页: [1]
查看完整版本: stm32h7 adc怎么可以重新初始化?