蓝桥杯嵌入式G431(hal库)——PWM(1)

本文介绍了如何使用Cubemx配置定时器以生成PWM波形,包括选择GPIO口、设置预分频系数、重装载值和比较寄存器,以及通过调整这些参数来改变PWM的频率和占空比。示例中展示了生成1KHz、10%占空比的PWM波的过程。
摘要由CSDN通过智能技术生成

前言:

        本文将使用定时器实现PWM波,我们使用重装载值可实现输出一定频率的波形,通过设置比较寄存器的值,将高电平与低电平信号按照一定频率交替输出,输出信号便称为PWM波形。

        例如,对于一个高电平10V和低电平0V的方波,占空比为50%时,就是一个DC 5V的信号输出。而占空比为10%时,输出电压将只有1V。

        产生一个PWM波有两张方式,本文将简绍PWM模式

        具体实现方法如下:

        (1)Cubemx中选定需要使用的GPIO口,并将其配置为定时器的PWM输出模式。

        (2)按需要选择定时器的模式,并设置所需的预分频系数、自动重载寄存器值、计数器模式等参数。

        (3)根据需要设置定时器的比较寄存器值,从而实现对PWM波形的输出控制。

        (4)Cubemx中生成代码并导出,通过修改CCR,PSC实现不同频率,不同占空比的PWM波

        值得注意的是,PWM模式,在同时输出多路PWM波时,频率是相同的,占空比可以不同,想要同时输出多路不同频率占空比的PWM波,可使用输出比较模式,具体实现可参考下一篇文章。

CUBEMX配置:

         本次实验使用TIM2的通道1输出频率1KHZ,占空比10%的PWM波,CUBEMX中更改时钟源为内部时钟,通道一选择PWM Genneration CH1,修改预分频系数80-1,重装载值1000-1,比较寄存器100。

        计算公式如下:   频率=80M/(80)/(1000)          占空比=100/1000

代码实现如下:

        (1)开启PWM波

	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

        (2)修改频率(及修改重装载值)

	__HAL_TIM_SetAutoreload(&htim2,99);
	__HAL_TIM_SET_AUTORELOAD(&htim2,99);

        这两个函数作用是一样的,参数有两个,第一个是定时器选择,第二个是写入的ARR值。

频率=80M/80/ARR,这俩函数原型如下:

         (3)修改占空比

__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,10);
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,10);

        这两个函数作用是一样的,参数有三个,第一个是定时器选择,第二个是选择通道,第三是CCR值。

        占空比=CCR/ARR,这俩函数原型如下:

最后:

        PWM波形的频率和占空比是关联的。一般情况下,PWM波形的频率越大,其在电路中的平均功率也会越大,因此在实际应用中需要根据具体情况选择合适的频率和占空比值,以达到最佳效果。

        一定记得,使用过程中CCR值不能比ARR值高!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值