- #include "EXIT.h"
- #include "delay.h"
- #include "key.h"
- #include "LED.h"
- //ÍⲿÖжϳõʼ»¯
- void EXIT_Init()
- {
- //ÅäÖÃIO¿Ú
- //ʹÄÜIO¿ÚµÄʱÖÓ
- //ÅäÖÃIO¿ÚµÄģʽ ÊäÈë Êä³ö ¸´Óà ÉÏÀÏÂÀ ¿ªÂ©ÍÆÍìµÈģʽ
- GPIO_InitTypeDef GPIO_Initure;
-
- __HAL_RCC_GPIOA_CLK_ENABLE(); //ʹÄÜGPIOAµÄʱÖÓ
- __HAL_RCC_GPIOC_CLK_ENABLE(); //ʹÄÜGPIOBµÄʱÖÓ
- __HAL_RCC_GPIOH_CLK_ENABLE(); //ʹÄÜGPIOHµÄʱÖÓ
- //ÅäÖÃPA0
- GPIO_Initure.Pin = GPIO_PIN_0;
- GPIO_Initure.Mode = GPIO_MODE_IT_RISING;//ÉèÖÃΪÉÏÉýÑØ´¥·¢
- GPIO_Initure.Pull = GPIO_PULLDOWN; //ÏÂÀ
- HAL_GPIO_Init(GPIOA, &GPIO_Initure);
- //ÅäÖÃPC13
- GPIO_Initure.Pin = GPIO_PIN_13;
- GPIO_Initure.Mode = GPIO_MODE_EVT_FALLING;//ÉèÖÃϽµÑØ´¥·¢
- GPIO_Initure.Pull = GPIO_PULLUP; //ÉÏÀ
- HAL_GPIO_Init(GPIOC,&GPIO_Initure);
- //ÅäÖÃPH2ºÍPH3
- GPIO_Initure.Pin = GPIO_PIN_2 | GPIO_PIN_3;
- HAL_GPIO_Init(GPIOH,&GPIO_Initure);
-
- //ÉèÖÃÖжÏÏßµÄÓÅÏȼ¶
-
- //ÖжÏÏß0
- HAL_NVIC_SetPriority(EXTI0_IRQn,2,0);//ÇÀÕ¼ÓÅÏȼ¶2 ÏìÓ¦ÓÅÏȼ¶0
- HAL_NVIC_EnableIRQ(EXTI0_IRQn); //ʹÄÜÖжÏ
- //ÖжÏÏß2
- HAL_NVIC_SetPriority(EXTI2_IRQn,2,1);
- HAL_NVIC_EnableIRQ(EXTI2_IRQn);
- //ÖжÏÏß3
- HAL_NVIC_SetPriority(EXTI3_IRQn,2,2);
- HAL_NVIC_EnableIRQ(EXTI3_IRQn);
- //ÖжÏÏß13
- HAL_NVIC_SetPriority(EXTI15_10_IRQn,2,3);
- HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
-
- }
- //ÖжϷþÎñº¯Êý
- void EXIT0_IRQHandler()
- {
- HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
- }
- void EXIT2_IRQHandler()
- {
- HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
- }
- void EXIT3_IRQHandler()
- {
- HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
- }
- void EXIT13_IRQHandler( )
- {
- HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
- }
-
- //»Øµ÷º¯Êý
- //ËùÓеÄÖжϺ¯Êý¶¼Òªµ÷ÓÃ
- void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
- {
- delay_ms(100);
- switch(GPIO_Pin)
- {
- case GPIO_PIN_0:
- if(WK_UP==1)
- {
- //printf("\r\nWK_UP\r\n");
- LED0(0);
- LED1(0);
- }
- break;
- case GPIO_PIN_2:
- if(KEY1==0)
- {
- printf("\r\nKEY1\r\n");
- }
- break;
- case GPIO_PIN_3:
- if(KEY0==0)
- {
- printf("\r\nKEY0\r\n");
- }
- break;
- case GPIO_PIN_13:
- if(KEY2==0)
- {
- printf("\r\nKEY2\r\n");
- }
- break;
- }
- }
查看了寄存器的值没发现问题 但是不可以用 求大佬指教
|