有人打算使用stm32u5系列片内lptim做低功耗模式唤醒。基于stm32 ll库组织代码,折腾几天后似乎连中断都进不了,想找找是否有现存ll库例程可以参考。
我没有在stm32u5现有固件库里找到基于ll库的lptim驱动例程。我之前也没有基于ll库编写过针对stm32u5系列的lptim驱动代码。我尝试着写了一个演示代码,还算顺利。可以正常工作、可以产生定时器相关中断。从使用cubemx工具进行图形化配置开始,然后添加用户代码。我这里将相关操作过程分享出来,供有需要的人参考。
我使用到了lptim1的两路pwm输出,同时开启了lptim1的更新中断和通道1的比较中断。
先做lptm1的时基参数和pwm输出配置:
因为要使用更新中断和比较中断,在cubemx里记得做lptim1的nvic相应使能配置。
创建工程后,添加如下基于ll库的用户代码:
进行编译、调试后即可看到输出结果,在中断里打断点也可以感受到中断的产生。
后来,我又使用stm32g4开发板,基于ll库组织了针对lptim1的pwm及相关中断的实现代码。照样使用stm32cubemx进行配置,开启更新中断、实现1路pwm输出。这样也一并分享出来供参考。
使用ll库组织代码,一方面可以让我们对硬件操作更亲近、更直接,另一方面,也可以降低使用者对c语言知识把握度的要求,至于其它方面的考量,比方代码效率、代码大小等,恐怕要结合具体应用来评估。或许对于很多人来说,选择ll库还是hal库主要是看用哪个对自己更方便、更符合自己的喜好等。不过,基于ll库来组织代码,就要求我们对硬件原理,寄存器定义、配置时序,有着更清晰、更细节的把握,否则哪怕几行代码也可能会被狠狠地折腾一番。对于上面功能,如果使用hal库的话,通过cubemx配置完成后,用户只需调用一行库函数调用代码即可完成,其中要注意的地方,hal库代码大多帮我们考虑到并做好了。
数字式时间继电器抗干扰方法分析
远距离遥控玩具中的8通道无线收发芯片
英飞凌与爱特梅尔达成协议妥善解决专利纠纷
关于混合动力车和电动车的新型加热方式分析
美国制约华为通信发展,澳大利亚紧随其后,禁止华为提供5G技术
基于LL库实现STM32U5 LPTIM功能
放大器噪声的来源
震动开关 颖特精密YTJM-CGQ-16.25参数介绍
得到能量的电子为何不能长留高能级轨道上呢?
我国在虚拟现实和增强现实显示技术和算法等技术的研究达到国际领先水平
LED显示屏消费市场持续升级 企业正积极寻找突破产业天花板的钥匙
16G老粉福利,iOS10.3秒增3GB内存
为什么国内芯片消费电子可以,汽车电子却不行?
徐迈老师人工智能学习交流分享会:你好,人工智能
MIUI9最新消息,时不我待,更新了我旗舰小米6,接下来马上轮到我亲儿子小米5C!
区块链和智能合约技术让人们在金融体系和数字世界里拥有自主权
超五类非屏蔽双绞线一箱多少米
单片机温度记录系统
人工智能领域:来自上海交通大学的AI创业校友集
首个基于地球静止轨道卫星的Q/V频段星地通信试验系统成功运行