Ansersion 发表于 2019-11-18 18:39

ADC低功耗填坑

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,没有深挖,学习了

Ansersion 发表于 2019-11-19 09:13

martinhu 发表于 2019-11-19 09:06
这个顺序的话,用户手册上都有描述的吧
      Adc_Disable();
      BgrEnable(FALSE);


多谢

kane1019 发表于 2019-11-21 14:15


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

aoyi 发表于 2019-12-16 11:48

非常感谢楼主分享

drer 发表于 2019-12-16 11:55

非常感谢楼主分享
页: [1]
查看完整版本: ADC低功耗填坑