新手上路
- 积分
- 30
- 金钱
- 30
- 注册时间
- 2020-8-21
- 在线时间
- 11 小时
|
2金钱
void KEY_Init(void) //按键初始化
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void EXIT_Init_WAY(void) //外部中断初始化
{
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG ,ENABLE);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0);
EXTI_InitStruct.EXTI_Line = EXTI_PinSource0;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitStruct);
NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0x00;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0x02;
NVIC_Init(&NVIC_InitStruct);
}
void EXTI0_IRQHandler(void)//中断服务函数
{
delay_ms(10);
if(WK_UP==1)
{
LEDx = !LEDx;
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
//main函数
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init(168);
KEY_Init();
EXIT_Init_WAY();
LED_Init();
LEDx = 0;
while(1);
|
|