打印
[其他ST产品]

stm32 ADC怎么彻底关闭

[复制链接]
3607|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andiwxz|  楼主 | 2019-6-18 12:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
     为了实现低功耗,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);
}


使用特权

评论回复
沙发
香水城| | 2019-6-20 15:29 | 只看该作者
你注意停止外设工作不能等同于关闭相关外设的时钟;
比方 HAL_ADC_DeInit(&hadc1);  只是让ADC回到复位状态,并未关闭其外设时钟;

休眠时要注意没有其它GPIO管脚有漏电流产生;

用到的GPIO,在休眠状态下要保证其电平是固定的,结合具体电路选择其电平【以不产生功耗为原则】;

不用的管脚可以配置为Analog模拟模式;

使用特权

评论回复
评论
香水城 2020-3-27 10:59 回复TA
@zwc6658305 :有关闭外设时钟的函数,比方 __HAL_RCC_ADC1_CLK_DISABLE() 
zwc6658305 2020-3-25 18:55 回复TA
香主你好,那ADC时钟怎么关闭? 也就是低功耗ADC不采集怎么处理? 
板凳
maidoudemangguo| | 2019-6-20 15:52 | 只看该作者
关时钟

使用特权

评论回复
地板
906286309| | 2019-6-20 16:08 | 只看该作者
我是来赚积分的!!

使用特权

评论回复
5
paotangsan| | 2019-7-8 11:35 | 只看该作者
引脚是如何配置的啊

使用特权

评论回复
6
renzheshengui| | 2019-7-8 11:42 | 只看该作者
应该是没有关闭时钟

使用特权

评论回复
7
wakayi| | 2019-7-8 11:47 | 只看该作者
引脚以及相关时钟都要进行设置

使用特权

评论回复
8
香水城| | 2020-3-27 11:05 | 只看该作者
关于关于关闭ADC,有时简单关闭ADC时钟还可能不行。

如果开启了特殊通道,得单独关闭。

这里有篇跟关闭ADC有关的低功耗应用**,可以看看。
一个低功耗应用的案例分析

使用特权

评论回复
9
香水城| | 2020-3-27 11:08 | 只看该作者
paotangsan 发表于 2019-7-8 11:35
引脚是如何配置的啊

引脚配置基本原则 是不产生额外漏电流。

结合实际应用电路,该高就高,该低就低。

不用的脚一般可以配置在analog状态。

使用特权

评论回复
10
hufuju| | 2020-3-27 12:50 | 只看该作者
瞧瞧!顺便学点知识!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

258

帖子

3

粉丝