欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

发布时间:2025/3/15 编程问答 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、前言
  • 二、CubeMX
    • 2.1、Clock Configuration
    • 2.2、LPTIM2 Mode and Configuration
    • 2.3、Parameter Settings
    • 2.4、生成代码
  • 三、代码
    • 3.1、lptim.c
    • 3.2、烧写代码
  • 四、细节补充

相关笔记:
STM32H743+CubeMX-定时器TIM输出PWM(Output Compare模式)
STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)

一、前言

PWM波形在实际工作上有非常广泛的使用,尤其在步进电机控制与LED阵列的控制。Cortex-M7架构增加了好几个低功耗定时器LPTIM,也可以用来产生PWM波。
LPTIM没有普通TIM的功能强大,主要的用途在于低功耗。
如下图所示,PWM波的频率是10kHz,占空比50%。

二、CubeMX

2.1、Clock Configuration

LPTIM2,LPTIM3等时钟源都是APB4总线,所以LPTIM2的工作频率是120M。

2.2、LPTIM2 Mode and Configuration

不勾选Waveform Generation的话,就没有分配GPIO口。

2.3、Parameter Settings

2.4、生成代码

三、代码

3.1、lptim.c

在函数MX_LPTIM2_Init(void)里添加用户代码,HAL_LPTIM_PWM_Start()开启PWM波输出,并设置ARR寄存器与CMP寄存器。

HAL_LPTIM_PWM_Start( )的第二个入口参数Period与第三个入口参数Pulse计算PWM波的频率与占空比。
PWM波的频率 = 120M / Period + 1 = 120M / 12000 = 10kHz
PWM波的占空比 = (Pulse + 1 / Period + 1) * 100% = (6000 / 12000) * 100% = 0.5 * 100% = 50%。

3.2、烧写代码

接着烧写代码,用示波器查看对应的GPIO口。

四、细节补充

  • LPTIM与普通TIM调用的HAL库函数不一样,LPTIM调用HAL_LPTIM_PWM_Start()时需要设置PWM的频率与占空比,而普通TIM的HAL_TIM_PWM_Start()与HAL_TIM_OC_Start()只是打开某个通道的PWM输出。
  • 总结

    以上是生活随笔为你收集整理的STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。