STM32—进入STOP模式后功耗下不去问题

背景:

最近调试板子进入STOP模式后发现电流为mA级别,功耗降不下去,最终发现是ADC开启后,忘记关闭了,导致有1.45mA的电流消耗。

内容:

利用HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI)函数使板子进入STOP模式后,电流一直降不下去。之后调了好久,才发现调用ADC采集后,忘记把ADC关掉了,真是蛋疼啊。代码如下:

 

HAL_ADC_Start(&hadc);        //开启ADC                      
HAL_ADC_PollForConversion(&hadc,10);//进行ADC 转换,然后对转换后数据进行换算。关键的一步,转换之后没有调用HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc)函数把adc转换关闭,  导致板子进入STOP模式adc一直耗电。

加入HAL_ADC_Stop(&hadc)后,测试板子的功耗果然下去了。

再查询芯片手册,发现ADC消耗电流为1450uA,与降低的功耗一致,确实为ADC未关闭引起。

STM32—进入STOP模式后功耗下不去问题_第1张图片

           

你可能感兴趣的:(STM32,问题集,STM32开发)