[mw_shl_code=c,true]#include "sys.h"
#include "delay.h"
#include "usart.h"
#define key0 PAin(13)
#define key1 PAin(15)
#define wk_up PAin(0)
#define led0 PAout(8)
#define led1 PDout(2)
void LED_Init(void);
void EXTIX_Init(void);
int main()
{
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
EXTIX_Init();
while(1)
{
printf("OK\n");
delay_ms(1000);
}
}
void LED_Init(void)
{
RCC->APB2ENR|=1<<2;
RCC->APB2ENR|=1<<5;
GPIOA->CRH&=0XFFFFFFF0;
GPIOA->CRH|=0X00000003;
GPIOA->ODR|=1<<8;
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;
GPIOD->ODR|=1<<2;
}
void EXTIX_Init(void)
{
RCC->APB2ENR|=1<<2;
JTAG_Set(JTAG_SWD_DISABLE);
GPIOA->CRL&=0XFFFFFFF0;
GPIOA->CRL|=0X00000008;
GPIOA->CRH&=0X0F0FFFFF;
GPIOA->CRH|=0X80800000;
GPIOA->ODR|=1<<13;
GPIOA->ODR|=1<<15;
Ex_NVIC_Config(GPIO_A,0,0x02);
Ex_NVIC_Config(GPIO_A,13,0x01);
Ex_NVIC_Config(GPIO_A,15,0x01);
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);
MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);
}
void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(wk_up==1)
{
led0=!led0;
led1=!led1;
}
EXTI->  R|=1<<0;
}
void EXTI15_10IRQHandler(void)
{
delay_ms(10);
if(key0==0)
{
led0=!led0;
} else if(key1==0)
{
led1=!led1;
}
EXTI->  R|=1<<13;
EXTI->  R|=1<<15;
}[/mw_shl_code]
1.硬件平台:mini stm32
2.软件平台:
3.问题描述:
|