stm32 ADC怎么彻底关闭
为了实现低功耗,cpu休眠的时候需要关闭ADC采样。但是我关闭adc以后,adc是不采样了,但是功耗并没有下降。求教有知道为什么的吗?代码如下,都是用的库函数,能关的都关了。adc和dma的时钟也是关闭的。void g_adc_stop(void)
{
HAL_ADC_Stop(&hadc1);
HAL_ADC_Stop_DMA(&hadc1);
HAL_ADC_DeInit(&hadc1);
HAL_DMA_DeInit(&hdma_adc1);
ADC_Disable(&hadc1);
} 你注意停止外设工作不能等同于关闭相关外设的时钟;
比方 HAL_ADC_DeInit(&hadc1);只是让ADC回到复位状态,并未关闭其外设时钟;
休眠时要注意没有其它GPIO管脚有漏电流产生;
用到的GPIO,在休眠状态下要保证其电平是固定的,结合具体电路选择其电平【以不产生功耗为原则】;
不用的管脚可以配置为Analog模拟模式;
有关闭外设时钟的函数,比方 __HAL_RCC_ADC1_CLK_DISABLE() ADC时钟怎么关闭? 也就是低功耗ADC不采集怎么处理? 关时钟
引脚是如何配置的啊
应该是没有关闭时钟
引脚以及相关时钟都要进行设置
关于关于关闭ADC,有时简单关闭ADC时钟还可能不行。
如果开启了特殊通道,得单独关闭。
引脚配置基本原则 是不产生额外漏电流。
结合实际应用电路,该高就高,该低就低。
不用的脚一般可以配置在analog状态。
嗯,那我按大家的说法挨个排查一下,谢谢哈 别初始化不就行了
页:
[1]