写在前面——
本文将介绍嵌入式竞赛实训平台(CT117E-M4)开发板上输出PWM波。
目录
一、硬件平台
嵌入式竞赛实训平台(CT117E-M4)是北京国信长天科技有限公司设计、生产的一款“蓝桥杯全国软件与信息技术专业人才大赛–嵌入式设计与开发科目”专用竞赛平台,平台以STM32G431RBT6为主控芯片,预留扩展板接口,可为用户提供丰富的实验场景。
CT117E-M4产片图片
二、软件平台
KEIL5,STM32CubeMX
三、PWM简要介绍
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
以下具有[TIM_CH]的I/O口进行PWM波的输出,STM32的定时器除了基本定时器之外,其他的定时器都可以产生PWM输出。
PWM1:
向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
PWM2:
在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电平。
当我们控制LED时,因为LED一般低电平点亮,所以常用:PWM1,向上计数,低电平有效
四、配置过程
基本配置过程:
- 选择TIM3
- 设置定时器时钟源为内部时钟源
- 设置定时器CH2为PWM模式
- 对应管脚自动设置为复用模式
- 可自行选择是否开启定时器中断
- Mode 选择PWM模式1
- Pulse(占空比值) 先给0
- Fast Mode PWM脉冲快速模式和我们配置无关,不使能
- PWM 极性:设置为低电平 PS: 由于LED是低电平点亮,所以我们把极性设置为low
五、函数编写
1.定义变量
/* USER CODE BEGIN 1 */
uint16_t pwm_valueal=0; //PWM占空比
/* USER CODE END 1 */
2.使能输出
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);
/* USER CODE END 2 */
3.主函数
pwm_value = 250; //占空比为50%
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, pwm_value); //在tim.h的1663行
/* USER CODE END 3 */
}
六、总结
PWM输出到这里就结束了~