蓝桥杯嵌入式——PWM输出

2023-12-20 17:10:34

实现PA6输出一个100HZ,PA7输出一个200HZ,占空比通过两个按键调节,占空比循环10-90。

80 000 000 / 8000?/ 100?= 100HZ

80 000 000 / 4000?/ 100?= 200HZ

设置PWM模式,分频系数,重装载值,占空比,以PA6为例如下:PA7同理

main.c

打开PWM输出:

	HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);

定义两个全局变量用于存放占空比的值:?

uint8_t pa6_duty;
uint8_t pa7_duty;

死循环里放入LCD显示函数,显示占空比的值:

注意:sprintf()函数要用stdio.h这个头文件

char text1[30];
sprintf(text1,"     PA6_duty = %d    ",pa6_duty );
LCD_DisplayStringLine(Line2, (u8 *)text1);

char text2[30];
sprintf(text2,"     PA7_duty = %d    ",pa7_duty);
LCD_DisplayStringLine(Line4, (u8 *)text2);

按键处理函数里调节占空比的值:

void Key_Pro(void)
{
	switch(Key_Scan())
	{
		case 1://B1?ì°′
			pa6_duty += 10;
			if(pa6_duty > 90)	
				pa6_duty = 10;
			__HAL_TIM_SetCompare(&htim16,TIM_CHANNEL_1,pa6_duty);
		break;
		case 2://B2?ì°′
			pa7_duty += 10;
			if(pa7_duty > 90)	
				pa7_duty = 10;
			__HAL_TIM_SetCompare(&htim17,TIM_CHANNEL_1,pa7_duty);
		break;
	}
}

文章来源:https://blog.csdn.net/qq_53471484/article/details/135108975
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。