一、配置过程
1、配置RCC、SYS、USART1、时钟84MHz
2、设置TIM2输出1kHz的PWM
Counter Settings:
Prescaler(时钟预分频数):840-1
Counter Mode(计数模式):Up(向上计数模式)
Counter Period(自动重装载值):100-1
Internal Clock Division(时钟分频因子):No Division(不分频)
auto-reload preload(自动重装载):Enable(使能)
TRGO Output (TRGO) Parameters:
TRGO:在定时器的定时时间到达的时候输出一个信号(如:定时器更新产生TRGO信号来触发ADC的同步转换)
Master/Slave Mode(MSM bit):不使能
Trigger Event Selection:Reset(UG bit from TIMx_EGR)
PWM Generation Channel:
Mode(定时模式):PWM mode 1 设置定时器计数器与比较值相等时输出引脚的状态
Pulse(计数比较值):0 这里建议设置为0,在中断中改变比较寄存器的值
Output compare preload(输出比较预加载):Enable(使能) 作用和 auto-reload preload 类似
Fast Mode(脉冲快速模式):Disable(不使能) 与我们配置无关不使能
CH Polarity(输出极性):High 当定时器计数值小于 CCR1_Val 时,输出高电平
3、生成代码
二、代码编写
1、在tim.c中添加定时器启动和中断函数
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
2、在主函数中设置pwm占空比
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,80);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,80);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_3,80);
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_4,80);
3、即完成1kHz,占空比为80%的方波
三、需要背的
1、打开定时器pwm
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
2、设置占空比
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,80);