STM32 STOP模式低功耗配置

停止模式基于 Cortex®-M4,带 FPU 深度睡眠模式,并结合外围时钟门控。电压调节器可以在正常或低功耗模式下配置。在停止模式下,1.2 V 域中的所有时钟都将停止,PLL、HSI 和 HSE RC 振荡器被禁用。内部 SRAM 和寄存器内容将保留。

为了达到STM32极致低功耗的水平,在进入STOP模式前需要做一些配置:

1、ADC必须除能,adc在stop模式下也会产生功耗,休眠前加上ADC_DeInit(ADC1);

2、未使用的GPIO管脚一律配置成ANALOG  NOPULL模式。实测最小系统下,所有管脚配置成ANALOG NOPULL,stop模式休眠时能到19uA左右

3、已使用的GPIO管脚一定要注意是否和外部电流形成漏电。比较好的方式是在休眠将所有GPIO的配置、模式、电平都打印出来,对比电路图看下是否满足要求。

电平读取:HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)

模式读取:Print("PA:\nMODER:  0X%x\n OTYPER:  0x%x\n OSPEEDR:  0x%x\n PUPDR:  0x%x\n",
                      GPIOA->MODER, GPIOA->OTYPER, GPIOA->OSPEEDR, GPIOA->PUPDR);

然后根据需要配置休眠前GPIO模式和电平状态,让IO口保持我们期望的固定状态,否则可能存在不确定性漏电。
 

发布了36 篇原创文章 · 获赞 4 · 访问量 7036

猜你喜欢

转载自blog.csdn.net/wangbotao1990/article/details/96133300
今日推荐