按键中断控制切换

通过单片机实现以下功能:

1.单片机有三种工作模式(定义全局变量MM表示模式,MM=1,2,3表示三种不同的模式)

LED控制模式
风扇控制模式
蜂鸣器控制模式
2.可以在某一个模式下通过拓展板KEY1按键控制设备

按键按下一次,设备打开,按键再按下一次,设备关闭(设备管脚输出反向电平)

3.关于模式的切换可以通过以下两种方式:

通过串口通信,电脑端发送当前模式(设置串口接收中断,接收到的字符串进行比较)
电脑发送BEE,进入蜂鸣器控制模式
电脑发送FAN ,进行风扇控制模式
电脑发送LED,进入LED模式
通过底板用户自定义按键进行模式切换
按键按下一次进入LE

       . 先在cubeMx中设置引脚功能

生成代码后在Keil中添加自定义代码

int ch=0;
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
	if(GPIO_Pin==GPIO_PIN_9)
	{
		if(ch%3==0)
		{
			HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_4);
			HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
		}
		else if(ch%3==1)
		{
			HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
		}
		else if(ch%3==2)
		{
			HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15); 
		}
	}
	if(GPIO_Pin==GPIO_PIN_12)
	{
		ch++;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值