[其他] ADC低功耗填坑

[复制链接]
1566|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,没有深挖,学习了
 楼主| 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 | 显示全部楼层
非常感谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

72

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部