蓝桥杯嵌入式——PWM输出

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

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值