这一段程序想实现一个按键按一下,LED就常亮,再按一下,LED就常灭。可以吗?

2025-03-22 22:00:37
推荐回答(3个)
回答1:

你好,
上述程序可以满足你说的要求,按键按下抬起的操作可以触发一次 GPIO Pin_1 的状态的读取,你的程序其实就是将此口的状态反转。读取之后用了一个if else 的判断,其实这四行可以直接用一句取反的函数代替,估计是叫invert或者switch或者toggle之类的。
望采纳。

回答2:

if(key0==1) 这是51单片机的读法,怎么用到stm32上了
野火的例程:
void Key_Test(void)
{
/* config the led */
LED_GPIO_Config();
LED1_ON;
LED2_ON;
/*config key*/
Key1_GPIO_Config();
Key2_GPIO_Config();

while(1)
{
if( Key_Scan(GPIOA,GPIO_Pin_0) == KEY_ON ) // KEY1
{
/*LED1反转*/
LED1_TOGGLE;
}

if( Key_Scan(GPIOC,GPIO_Pin_13) == KEY_ON ) // KEY2
{
/*LED2反转*/
LED2_TOGGLE;
}
}
}

回答3:

这段程序可以实现按一下,切换一下LED的状态。