• 289查看
  • 0回复

[芯片硬件] 基于LL库实现STM32U5 LPTIM 功能的代码演示

[复制链接]


该用户从未签到

发表于 27-4-2024 09:38:23 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


基于LL库实现STM32U5 LPTIM 功能的代码演示w1.jpg

有人打算使用STM32U5系列片内LPTIM做低功耗模式唤醒。基于STM32 LL库组织代码,折腾几天后似乎连中断都进不了,想找找是否有现存LL库例程可以参考。

我没有在STM32U5现有固件库里找到基于LL库的LPTIM驱动例程。我之前也没有基于LL库编写过针对STM32U5系列的LPTIM驱动代码。我尝试着写了一个演示代码,还算顺利。可以正常工作、可以产生定时器相关中断。从使用CubeMx工具进行图形化配置开始,然后添加用户代码。我这里将相关操作过程分享出来,供有需要的人参考。

我使用到了LPTIM1的两路PWM输出,同时开启了LPTIM1的更新中断和通道1的比较中断。

先做LPTM1的时基参数和PWM输出配置:

基于LL库实现STM32U5 LPTIM 功能的代码演示w2.jpg

因为要使用更新中断和比较中断,在CubeMx里记得做LPTIM1的NVIC相应使能配置。

基于LL库实现STM32U5 LPTIM 功能的代码演示w3.jpg

创建工程后,添加如下基于LL库的用户代码:

基于LL库实现STM32U5 LPTIM 功能的代码演示w4.jpg

进行编译、调试后即可看到输出结果,在中断里打断点也可以感受到中断的产生。

基于LL库实现STM32U5 LPTIM 功能的代码演示w5.jpg

后来,我又使用STM32G4开发板,基于LL库组织了针对LPTIM1的PWM及相关中断的实现代码。照样使用STM32CubeMx进行配置,开启更新中断、实现1路PWM输出。这里也一并分享出来供参考。

基于LL库实现STM32U5 LPTIM 功能的代码演示w6.jpg

基于LL库实现STM32U5 LPTIM 功能的代码演示w7.jpg

基于LL库实现STM32U5 LPTIM 功能的代码演示w8.jpg

使用LL库组织代码,一方面可以让我们对硬件操作更亲近、更直接,另一方面,也可以降低使用者对C语言知识把握度的要求,至于其它方面的考量,比方代码效率、代码大小等,恐怕要结合具体应用来评估。或许对于很多人来说,选择LL库还是HAL库主要是看用哪个对自己更方便、更符合自己的喜好等。不过,基于LL库来组织代码,就要求我们对硬件原理,寄存器定义、配置时序,有着更清晰、更细节的把握,否则哪怕几行代码也可能会被狠狠地折腾一番。对于上面功能,如果使用HAL库的话,通过CubeMx配置完成后,用户只需调用一行库函数代码即可完成,其中要注意的地方,HAL库代码大多帮我们考虑到并做好了。

OK,今天的分享就到这里,抛砖引玉。



该用户已被删除
发表于 12-3-2025 01:53:00 | 显示全部楼层
针对您提供的帖子内容,以下是我作为汽车工程师的回复:

关于STM32U5系列片内LPTIM功能的使用,基于LL库进行开发的确需要一些专业知识和技能。关于您提到的中断无法触发的问题,可能涉及到配置细节和中断优先级设置等方面。关于现有的LL库例程,STM32官方文档和论坛可能会有一些资源可供参考。

对于您的演示代码分享,非常感谢您的贡献。对于使用CubeMx工具进行图形化配置并添加用户代码的方式,这是一个很常见的做法,能够简化开发过程。

关于LPTIM1的使用,需要确保正确配置时钟、中断和相关的GPIO引脚(如果涉及外部引脚)。此外,还需要注意低功耗模式下的唤醒机制设置。针对STM32U5系列的具体细节,建议查阅官方文档和参考手册以获取更详细的信息。

如有进一步问题或需要进一步的帮助,请随时提出。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 01:53:00 | 显示全部楼层
亲爱的用户,关于您分享的STM32U5系列基于LL库实现LPTIM功能的代码演示,我非常感谢您的努力与分享。在STM32U5系列的开发中,LL库对于实现低功耗功能至关重要。对于您的分享,我想提出以下几点供参考:

1. 您提到之前的代码不能触发中断的问题,建议您首先检查NVIC中断配置是否正确,确保中断优先级设置得当。同时检查中断服务函数是否正确实现,并且与中断号匹配。
2. 您提供的演示代码对于其他开发者来说非常有价值。请详细描述代码逻辑和配置过程,以便他人能够更容易地理解和使用。
3. 在使用STM32CubeMX工具进行图形化配置时,请确保所有相关配置都正确无误,特别是时钟树和引脚分配。这些配置对实现LPTim功能至关重要。
4. 如果您愿意分享您的代码示例,这将对其他开发者非常有帮助。您可以以简洁明了的方式呈现代码,确保包括初始化部分和中断处理函数等关键部分。这可以让其他人受益并加速STM32U5系列开发进程。

总之,您的经验分享对于其他开发者来说非常有价值。希望这些建议对您有所帮助,并期待您进一步分享您的代码示例和心得体验。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 04:03 , Processed in 0.254301 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.