STM32L011D4芯片用SWD无法下载程序
求助:STM32L0系列标准库哪里下?
STM32L051低温时LPUART串口波特率异常
STM32L051C8进入低功耗模式电流偏大
STM32L052C8T6通过I2C模拟读16位数
STM32L0的VLCD外接5V会有问题吗
求助!!使用STM32L073 IO口模拟IIC接口读写AT24CM01 程序不停...
STM32L072RB写Bank2 EEPROM不响应中断
STM32L031无法进入boot
用MDK5.12仿真STM32L011D3,怎么没法子看内部寄存器?
将初始化代码中关于开启reference部分代码注释掉,
/** Configure for the selected ADC regular channel to be converted.
*/
// sConfig.Channel = ADC_CHANNEL_VREFINT;
// if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
// {
// Error_Handler();
// }
此时,系统电流变为6uA左右,因此确定是由于开启了VREFINT导致。因此需要在关闭ADC的同时也要关闭reference。
经过检查代码以及调试发现,执行函数
HAL_ADC_DeInit(&hadc);时会将ADC和VREFINT全部关闭,但是程序功耗并不降低。
那就是已经关闭了 那就在看看口线配置吧 不用的口线都配置成输出低电平
CLEAR_BIT(RCC->APB2ENR, (RCC_APB2ENR_ADC1EN))
在HAL里面应该就是这句吧,这个在程序中已经有了,执行过了,还是之前的效果。
HAL_ADC_DeInit调用的HAL_ADC_MspDeInit中的 __HAL_RCC_ADC1_CLK_DISABLE()应该已经关了时钟了吧
HAL_ADC_DeInit()这句话可以不用加
一样效果,没有用。
要如何才能真正关闭ADC时钟呢?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ,DISABLE);
各种口都配置好了,现在的问题就是开启AD后关闭AD功耗下不来,其他的部分配置完全一样。
行吧,你在看看吧,我就是这样用的,功耗在5uA左右
谢谢支持!请问你用的是哪款CPU呢?我又用L431试了一下,初始化ADC和不初始化ADC几乎没什么差别。
STM32L051C8T6
(__HAL_RCC_GPIOA_CLK_DISABLE();)。
当然有需要设置的除外,没有关闭会带来一定耗电的上升。
评分
查看全部评分