STM32CubeMX PWM
一、PWM简介
脉宽调制 (PWM) 是一种从数字输出输出模拟值的技术。普通的 GPIO 输出只能输出高电平或低电平。因此,只能通过使用时间来生成模拟值。使用 PWM,引脚交替打开和关闭,以便平均输出电压介于高电压和低电压之间。
占空比和 PWM 频率对我们来说是最重要的参数。接通时间占该周期时间的比例称为占空比。例如,20% 的占空比意味着信号在 20% 的时间内开启,在 80% 的时间内关闭。 PWM 频率指定信号的时间周期。
频率 =定时器时钟 / (psc+1) / (arr+1) (单位:Hz)
arr 是计数器值
psc 是预分频值
占空比:
duty circle = TIM3->CCR1 / arr(单位:%)
TIM3->CCR1 用户设定值
TIM3->CCR1 = dutyCycle
和__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, dutyCycle);作用相同
HAL_TIM_PWM_Start//PWM启动函数
HAL_TIM_PWM_Stop//PWM停止函数
_HAL_TIM_SET_COMPARE//占空比
_HAL_TIM_SET_AUTORELOAD//周期
二、CubeMX配置
打开仿真调试
时钟源
选择频率
使能板载LED PC13引脚
定时器配置
生成工程
在代码中只需要在main函数调用
main.c
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);
/* USER CODE END 2 */
添加小灯观察板子是否工作
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
HAL_Delay(100);
/* USER CODE END WHILE */
运行结果