[STM32H7] STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)

[复制链接]
1744|7
 楼主| zljiu 发表于 2021-9-6 12:42 | 显示全部楼层 |阅读模式
一、前言
PWM波形在实际工作上有非常广泛的使用,尤其在步进电机控制与LED阵列的控制。使用定时器的PWM产生模式让TIM8的通道1与通道2产生PWM波形,如下图所示,PWM波形的频率10kHz。
通道1与通道2的PWM关系是非对称关系,相当于互斥。
当通道1为高电平时,通道2为低电平。
当通道1为低电平时,通道2为高电平。

5821561359c3eadb8c.png

 楼主| zljiu 发表于 2021-9-6 12:43 | 显示全部楼层
二、CubeMX2.1、Clock Configuration

根据《STM32H7x3编程参考手册》第102页,TIM8的时钟源是APB2。当前工程上APB2的时钟频率是240M(后续用于计算PWM的周期)。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


 楼主| zljiu 发表于 2021-9-6 12:44 | 显示全部楼层
2.2、TIM8 Mode and Configuration

使用TIM8,使能通道1与通道2为PWM模式。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


 楼主| zljiu 发表于 2021-9-6 12:46 | 显示全部楼层
2.3、Parameter Settings
Counter Settings
TIM8的溢出频率=240M / ( Counter Period + 1 ) / ( Prescaler + 1 ),如下图所示,TIM8的溢出频率 = 240M / 24000 / 1 = 10kHz。 周期T = 1 / f = 1 / 10k = 100us。
所以TIM8的溢出频率是10kHz,周期T是100us。
2710661359cd23e1b5.png

PWM Generation Channel1 与 PWM Generation Channel2
Counter Period是24000 - 1 , Pulse 是 12000 -1 ,所以占空比为50%。根据实际使用调整Pulse的值,就能改变占空比。


其他
不用管。
3412261359cda8b48d.png

 楼主| zljiu 发表于 2021-9-6 12:47 | 显示全部楼层
2.4、生成代码

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


 楼主| zljiu 发表于 2021-9-6 12:48 | 显示全部楼层
三、代码3.1、tim.c

在函数void MX_TIM8_Init(void)里添加用户代码,调用HAL_TIM_PWM_Start()开启PWM输出。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


 楼主| zljiu 发表于 2021-9-6 12:49 | 显示全部楼层
3.2、烧写代码

编译,烧写代码,接着使用示波器检测PC6与PC7即可。
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


 楼主| zljiu 发表于 2021-9-6 12:50 | 显示全部楼层
四、示波器

从下图看到,PWM波形的频率是10kHz,符合2.3章节所计算的频率。跟Output Compare模式所产生的PWM波频率不一样
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbGxhY2U4OQ==,size_16,color_FFFFFF,t_70.jpg


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

本版积分规则

51

主题

3327

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部