久芯网

同样的硬件使用LL库和HAL编译的工程运行功耗不一样

avatar 从前有五座山 提问时间: 2023-07-09 17:24:50 / 未解决
项目在使用STM32L471RE开发,涉及到低功耗的处理。在测试过程中发现同样的硬件结构(PCB上仅焊接mcu的最小系统),使用LL库和HAL库生产的两个工程运行功耗不一样,工程配置时钟为4M 的MSI ,其他外设不配置,生成的工程直接编译下载。LL库的运行功耗为740ua、hal库为650ua
4个回答
  • avatar 晒太阳的懒猫
    回答时间: 2023-07-09 17:55:36

    细心啊,赞

  • avatar butterflyspring
    回答时间: 2023-07-09 18:21:36

    低功耗模式涉及的细节特别多。每种条件下多一个细节功耗都有变化。 LL库很显然接近底层,驱动贴近底层简单直接。HAL库考虑了很多情况,逻辑严谨,所以代码量多,并且各个函数的逻辑也经常有一定相关性,配置也丰富。 当代码不同时,运行的时间也会不同,相应的动态功耗也不同。对于一些配置(比如IO的状态等)不同,都会明显的引起功耗变化的。所以配置的每一个细节会决定功耗的具体情况。

  • avatar xmshao
    回答时间: 2023-07-09 18:52:22

    基于HAL库和LL库组织的代码,相同模式下芯片提现出来的功耗应该差不多,至少不会有很大差别。 你现在基于HAL库的代码运行功耗明显更低,说明它在低功耗处理方面比你基于LL库组织的代码做得更到位。 我们要知道,基于LL库组织代码的话,所有操作权都在用户手里了,HAL库不一样,库开发者在很多地方都 帮我们事先考虑周全了。基于LL库组织代码往往对使用者提出了更高的要求,对硬件操作时序、对寄存器 等要比使用HAL库了解得更多、更细。 建议你重点检查下各个不用外设的关闭及复位情况,尤其GPIO管脚的处理,保证管脚电平固定且无漏 电流产生。

  • avatar 万众邓鹏飞
    回答时间: 2023-07-09 19:23:19

    是不是外部时钟也打开了。

会员中心 微信客服
客服
回到顶部