[讨论] STM32L071RB 芯片从STOP模式唤醒后ADC异常问题

shower721   2018-4-23 23:42 楼主
近期一个项目,用到STM32L071RBT6的ADC 变换采样外部电源电压,开机后一切正常,但是一旦系统进入STOP模式,唤醒之后ADC 变换数据异常,非常不靠谱,从0到最大值漫天乱飞,不知什么原因。

唤醒后我用SystemClock_Config() 初始化时钟了,时钟应该没问题。另外我也试了ADC deinit & init, 都不管用。
用遇到过类似问题的同学吗?

/***********************************************************************
* trigger MCU enter stop mode
*/
void powerSaving(void){
        //config GPIO to analog mode (zero consumption for every analog GPIO)
        lightLed(LED_GREEN, false);
       
       
        //HAL_ADC_DeInit(&hadc);
        //clear wakeup flag
        __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
        //call power function to enter "STOP" mode
        HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
        //after stop, program continue run from here
        //config RCC
        SystemClock_Config();
        //sysclkConfig_after_stop();
        //adc init
        HAL_ADC_DeInit(&hadc);
        MX_ADC_Init();
        HAL_ADCEx_Calibration_Start(&hadc, ADC_SINGLE_ENDED);
        //config GPIO
}


回复评论 (1)

唤醒后,配置时钟后,要确认下时钟是否配置正确。还有就是配置完时钟,加个延时看看
点赞  2018-5-3 08:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复