Sistema integrado basado en STM32: Programación para controlar luces LED con 2 botones Presione el botón1 y el LED1 se volteará; presione el botón2 y el LED2 se volteará.
No sé por qué el texto chino se vuelve confuso después de copiarlo, por lo que la captura de pantalla se usa como referencia y el código se adjunta al final: #include?"sys.h" p>
#include?"usart. h"
#include?"delay.h"
#include?"led.h"?
#include?"key.h"?
//°?üí
//·°?üֵ
//mode:0,§? °?;1,?§?°?;
//·ֵ?
//0?ûκ?°?ü°
//KEY0_PRES ?KEY0°
/ /KEY1_PRES?KEY1°
//WKUP_PRES?WK_UP°
//×˺?ìuddleȼ?,KEY0>KEY1>WK_UP? !!
u8? KEY_Scan(u8?mode)
{ ?
static?u8?key_up=1;//°?ü°?ɿ? ±ê־
if (mode)key_up=1;?/?§°?
if(key_up&&(KEY0==0||KEY1==0||WK_UP ==1))
{
delay_ms(10);//ȥ?
key_up=0;
if(KEY0 ==0)retorno?KEY0_PRES;
más?if(KEY1==0)retorno?KEY1_PRES;
más?if(WK_UP==1)retorno?WKUP_PRES;?
}else?if( KEY0==1&&KEY1==1&&WK_UP==0)key_up=1; ?
return?0;//°?ü°
}
int ?main(void)
{ ?
vu8?t; ?
Stm32_Clock_Init(9);? //ϵͳ?±è?
delay_init(72);? //±?ʼ
LED_Init(); °?üɵ? 0; //LED
while(1)
{
t=KEY_Scan( 0 ///?õ?üֵ
cambiar(t)
{ ?
caso?KEY0_PRES:
LED0=! LED0;
romper;
caso?KEY1_PRES:
LED1=!LED1;
rotura;
caso?WKUP_PRES:
LED0=!LED0 ;
LED1=!LED1;
pausa;
predeterminado:
delay_ms(10); }?
} ?
}