打印
[其他]

ADC低功耗填坑

[复制链接]
1204|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ansersion|  楼主 | 2019-11-18 18:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HC32F003:因为有些ADC功能需要用到BGR,所以在进入低功耗模式时不但要关闭ADC还要关闭BGR。
然而,
如果是按照如下方式操作,实测比正常休眠模式多16uA左右(共22~23uA)
      BgrEnable(FALSE);
      Clk_SetPeripheralGate(ClkPeripheralAdcBgr, FALSE);
      Adc_Disable();
      GotoSleep();

但如果换个顺序就OK了。
      Adc_Disable();
      BgrEnable(FALSE);
      Clk_SetPeripheralGate(ClkPeripheralAdcBgr, FALSE);
      GotoSleep();

留个痕迹,方便参考。

使用特权

评论回复
沙发
smartpower| | 2019-11-18 19:52 | 只看该作者
关才CLK之后寄存器已无时钟,不能进行读写。所以应做完所有的寄存器配置后再关闭时钟。

使用特权

评论回复
板凳
martinhu| | 2019-11-19 09:06 | 只看该作者
这个顺序的话,用户手册上都有描述的吧
      Adc_Disable();
      BgrEnable(FALSE);
以上两个的前后顺序无所谓,
主要是要做完上述两个步骤,才能关闭ADC的外设时钟Clk_SetPeripheralGate(ClkPeripheralAdcBgr, FALSE);
如果你先关闭了ADC的外设时钟,上述两个命令可能执行不了。

使用特权

评论回复
地板
Ansersion|  楼主 | 2019-11-19 09:13 | 只看该作者
smartpower 发表于 2019-11-18 19:52
关才CLK之后寄存器已无时钟,不能进行读写。所以应做完所有的寄存器配置后再关闭时钟。 ...

平时就顾着抄demo,没有深挖,学习了

使用特权

评论回复
5
Ansersion|  楼主 | 2019-11-19 09:13 | 只看该作者
martinhu 发表于 2019-11-19 09:06
这个顺序的话,用户手册上都有描述的吧
      Adc_Disable();
      BgrEnable(FALSE);

多谢

使用特权

评论回复
6
kane1019| | 2019-11-21 14:15 | 只看该作者

华大一级代理商,有专业FAE支持,有需要技术支持或询价的欢迎加Q8687774详聊

使用特权

评论回复
7
aoyi| | 2019-12-16 11:48 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
drer| | 2019-12-16 11:55 | 只看该作者
非常感谢楼主分享

使用特权

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

本版积分规则

24

主题

72

帖子

4

粉丝