【国信长天蓝桥杯】④ STM32G431 TIM 输出PWM,设置PWM频率占空比等参数

摘要

本文章基于国信长天CT1117E-M4开发板,讲述了STM32G431芯片 TIM定时器输出PWM的步骤,以及设置PWM频率和占空比的方法,祝各位学生蓝桥杯比赛取得好成绩!
国信长天开发板

M4开发板 可用作PWM输出的引脚

开发板引出的引脚

由上图开发板引出的引脚可以看出,很多引脚都可以用作PWM输出。查阅芯片资料,可以得知部分引脚与PWM通道的对应关系如下表:
PA复用功能
PB复用功能

TIM PWM输出的 使用步骤

下文将以赛方提供的示例代码HAL_06_LCD为基础,为大家讲解使用PA7引脚输出PWM的步骤:
在这里插入图片描述

① 将 PA7初始化为定时器输输出通道模式

双击工程目录下的HAL_06_LCD.ioc,使用STM32CubeMX软件打开工程配置。

在这里插入图片描述

点击PA7,可以看到该引脚的功能可设置为TIM17_CH1,TIM3_CH2等等,这里我们将该引脚设为 TIM3_CH2。并且点击左边的Timer,将TIM3Channel 2设为PWM Generation CH2,下面的Parameter Setting中将Prescaler设为79Counter Period设为1000
在这里插入图片描述
上面这两个参数将决定定时器的定时周期,从而决定PWM的频率,具体的频率计算公式为:

频率 = 80M/((Prescaler +1) * Counter Period )

继续下拉Parameter Setting选项卡,将最下面的Pulse参数设为500,其他参数默认即可,如下图所示,设置完成后点击右上角的GENERATE CODE生成代码。

在这里插入图片描述
PWM的占空比将由Counter PeriodPulse这两个参数共同决定,具体的计算公式为:

占空比 = Pulse / Counter Period

同学们尝试计算下上诉设置中PWM的占空比和频率分别是多少?

② PWM的开始与停止

刚刚生成的代码还不能输出我们想要的PWM,需要我们在代码中手动开启PWM的输出,使用下列代码可开启或停止某个定时器通道的输出:

HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_2);//启动定时器3通道2的PWM输出

HAL_TIM_PWM_Stop_IT(&htim3, TIM_CHANNEL_2);//停止定时器3通道2的PWM输出

③ PWM频率及占空比的调节

配置完定时器及引脚的参数后,启动定时器通道的PWM输出,即可以在相关的引脚上产生PWM,PWM的初始频率和占空比由生成代码时填写的参数决定。当然也可以在代码中动态的调节PWM的频率和占空比:

//将定时器3通道2的比较值设为100,如果Counter Period为1000,则占空比为10%
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 100); 
//将定时器3的计数周期设为500,则此时频率为2000,占空比为20%
htim3.Init.Period = 500; 
HAL_TIM_Base_Init(&htim3);

④ 应用示例

使用Keil打开刚刚生成的代码,在主函数中添加如下内容:

		HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_2);//启动定时器3通道2PWM输出
		
		htim3.Init.Period = 500; 
		HAL_TIM_Base_Init(&htim3);//频率设为2000Hz
		
		__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 200); //占空比设为40%
		
		HAL_Delay(1000);
		
		htim3.Init.Period = 800; 
		HAL_TIM_Base_Init(&htim3);//频率设为1250Hz
		
		__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 200); //占空比设为25%
		
		HAL_Delay(1000);
		
		HAL_TIM_PWM_Stop_IT(&htim3, TIM_CHANNEL_2);//关闭定时器3通道2PWM输出
		HAL_Delay(1000);

代码截图如下,将会在PA7引脚上2000Hz方波持续输出1S,1250Hz方波持续输出1S,低电平持续输出1S。
在这里插入图片描述

总结

定时器PWM输出使用步骤总结如下:

  1. 将对应引脚设为定时器通道模式,并设置定时器参数
  2. 启动PWM输出
  3. 按照要求修改PWM的频率及占空比

同学们参考上面代码,尝试使用其他定时器,其他引脚,实现呼吸灯的效果。

如果此文章对你有帮助,欢迎点赞 关注 收藏 转发.

学习过程中遇到问题可以在评论区留言… …

下图鹏老师设计的蓝桥杯练习板,功能和蓝桥杯赛方指定的设备功能完全兼容。

在这里插入图片描述

  • 20
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
STM32G431PA1是一款高性能的微控制器,它具有多个PWM输出通道,可以用于生成各种波形信号。下面是一种常见的PWM输出波形的介绍: PWM(Pulse Width Modulation,脉宽调制)是一种通过改变信号的脉冲宽度来控制电平的技术。在STM32G431PA1中,可以使用定时器和通道来生成PWM波形。 首先,需要配置一个定时器作为PWM的计数器,并设置其工作模式为PWM模式。然后,选择一个输出通道,并设置其对应的GPIO引脚为复用功能,以连接到外部设备。 接下来,需要设置定时器的周期和占空比。周期决定了PWM波形的频率,而占空比决定了高电平和低电平的时间比例。 在STM32G431PA1中,可以通过以下步骤来配置PWM输出波形: 1. 初始化定时器:选择一个合适的定时器,并配置其时钟源和分频系数。 2. 配置定时器工作模式:将定时器设置PWM模式,并选择合适的计数模式。 3. 配置输出通道:选择一个输出通道,并设置对应的GPIO引脚为复用功能。 4. 设置周期和占空比:根据需要设置定时器的周期和占空比。 5. 启动定时器:使能定时器开始计数,PWM波形将会输出到对应的GPIO引脚上。 需要注意的是,具体的配置步骤和寄存器设置可能会因不同的开发环境和编程语言而有所差异。建议参考STM32G431PA1的技术手册和相关的开发文档来进行具体的配置和编程。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值