你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

经验分享 | 基于LL库实现STM32U5 LPTIM 功能的代码演示

[复制链接]
STMCU小助手 发布时间:2025-7-30 11:19

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

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

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

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png image.png image.png

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

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

文章出处:茶话MCU

收藏 评论0 发布时间:2025-7-30 11:19

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版