你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L051单片机ADC如何彻底关闭?

[复制链接]
zhengxk-344971 提问时间:2019-12-24 10:42 /
最近项目中用到STM32L051,低功耗设计。程序中试验,在ADC不初始化的时候,STOP模式下一秒唤醒一次,系统功耗为5uA,当采用Cube生成的初始化代码MX_ADC_Init(),并不启动转换,初始化后系统功耗为19uA。当采用函数HAL_ADC_DeInit(),关闭ADC后,系统功耗为17uA,为什么不能降为5uA呢?
<
收藏 评论16 发布时间:2019-12-24 10:42

举报

16个回答
mylovemcu 回答时间:2019-12-24 11:16:31
要关闭ADC的时钟  时钟才是增加功耗的罪魁祸首
zhengxk-344971 回答时间:2019-12-24 11:51:18
mylovemcu 发表于 2019-12-24 11:16
要关闭ADC的时钟  时钟才是增加功耗的罪魁祸首

HAL_ADC_DeInit调用的HAL_ADC_MspDeInit中的 __HAL_RCC_ADC1_CLK_DISABLE()应该已经关了时钟了吧
ljtzsd 回答时间:2019-12-24 12:55:30
HAL_ADC_Stop(&hadc);加上这句话试一试
HAL_ADC_DeInit()这句话可以不用加
zhengxk-344971 回答时间:2019-12-24 14:04:00
ljtzsd 发表于 2019-12-24 12:55
HAL_ADC_Stop(&hadc);加上这句话试一试
HAL_ADC_DeInit()这句话可以不用加

一样效果,没有用。
zhengxk-344971 回答时间:2019-12-24 14:05:23
mylovemcu 发表于 2019-12-24 11:16
要关闭ADC的时钟  时钟才是增加功耗的罪魁祸首

要如何才能真正关闭ADC时钟呢?
mylovemcu 回答时间:2019-12-24 14:29:23
zhengxk-344971 发表于 2019-12-24 14:05
要如何才能真正关闭ADC时钟呢?

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ,DISABLE);
zhengxk-344971 回答时间:2019-12-24 14:33:50
mylovemcu 发表于 2019-12-24 14:29
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 ,DISABLE);

CLEAR_BIT(RCC->APB2ENR,  (RCC_APB2ENR_ADC1EN))
在HAL里面应该就是这句吧,这个在程序中已经有了,执行过了,还是之前的效果。
mylovemcu 回答时间:2019-12-24 15:04:21
zhengxk-344971 发表于 2019-12-24 14:33
CLEAR_BIT(RCC->APB2ENR,  (RCC_APB2ENR_ADC1EN))
在HAL里面应该就是这句吧,这个在程序中已经有了,执行 ...

那就是已经关闭了  那就在看看口线配置吧  不用的口线都配置成输出低电平
zhengxk-344971 回答时间:2019-12-24 16:52:59
mylovemcu 发表于 2019-12-24 15:04
那就是已经关闭了  那就在看看口线配置吧  不用的口线都配置成输出低电平 ...

各种口都配置好了,现在的问题就是开启AD后关闭AD功耗下不来,其他的部分配置完全一样。
12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版