初级会员

- 积分
- 68
- 金钱
- 68
- 注册时间
- 2020-12-28
- 在线时间
- 32 小时
|
1金钱
刚接触stm32,想要实现一个按下按键两个led反转的功能,并且反转后会延时几秒。目前问题是如何实现再次按下按键后,让时间重新延时,比如我多次按下按键,可以使延时时间叠加。
代码如下
int main(void)
{
vu8 key=0;
u16 t;
u16 len;
u16 times=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
delay_init(); //延时函数初始化
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
BEEP_Init(); //初始化蜂鸣器端口
//先点亮红灯
while(1)
{
LED1=0;
LED0=1;
key=KEY_Scan(0); //得到键值
switch(key)
{
case KEY0_PRES: //控制LED0翻转
LED0=0;
LED1=1;
delay_ms(1864);
delay_ms(1864);
delay_ms(1864);
break;
}
}
}
|
|