蓝桥杯嵌入式——PWM输出

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

80 000 000 / 8000 / 100 = 100HZ

80 000 000 / 4000 / 100 = 200HZ

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

蓝桥杯嵌入式——PWM输出_第1张图片

蓝桥杯嵌入式——PWM输出_第2张图片

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;
	}
}

你可能感兴趣的:(蓝桥杯嵌入式,单片机,蓝桥杯)