| 
 | 
 
 本帖最后由 wangcharley 于 2021-3-23 16:39 编辑  
 
下面的代码,定义两个按键,一个用查询的方法,一个用中断的方法,复位后查询那个正常,一按中断那个,两个按键就都不管用了,大佬帮看看是哪里有问题啊! 
 
- #include "fm33lc0xx.h"
 
 - #include "fm33lc0xx_fl_gpio.h"
 
 - #include "fm33lc0xx_fl_rcc.h"
 
 - void led1Init()
 
 - {
 
 -     FL_GPIO_InitTypeDef GPIO_InitStruct;
 
 -     
 
 -     GPIO_InitStruct.pin = FL_GPIO_PIN_0 | FL_GPIO_PIN_1;
 
 -     GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
 
 -     GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
 
 -     GPIO_InitStruct.pull = DISABLE;
 
 -     GPIO_InitStruct.remapPin = DISABLE; 
 
 -     
 
 -     FL_GPIO_Init(GPIOC,&GPIO_InitStruct);
 
 -     
 
 -     GPIO_InitStruct.pin = FL_GPIO_PIN_10 | FL_GPIO_PIN_9;
 
 -     
 
 -     FL_GPIO_Init(GPIOB,&GPIO_InitStruct);
 
 -     
 
 -     FL_GPIO_SetOutputPin(GPIOC,FL_GPIO_PIN_0);
 
 -     FL_GPIO_SetOutputPin(GPIOC,FL_GPIO_PIN_1);
 
 -     FL_GPIO_SetOutputPin(GPIOB,FL_GPIO_PIN_10);
 
 -     FL_GPIO_SetOutputPin(GPIOB,FL_GPIO_PIN_9);
 
 -         
 
 - }
 
  
- void extiPC6Init()
 
 - {
 
 -     FL_GPIO_InitTypeDef PC6_GPIO_InitStruct;
 
 -     
 
 -     FL_RCC_EnableGroup1OperationClock(FL_RCC_GROUP1_OPCLK_EXTI);
 
 -     
 
 -     PC6_GPIO_InitStruct.pin = FL_GPIO_PIN_6;
 
 -     PC6_GPIO_InitStruct.mode = FL_GPIO_MODE_INPUT;
 
 -     PC6_GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
 
 -     PC6_GPIO_InitStruct.pull = DISABLE;
 
 -     PC6_GPIO_InitStruct.remapPin = DISABLE;
 
 -     FL_GPIO_Init(GPIOC,&PC6_GPIO_InitStruct);
 
 -     
 
 -     PC6_GPIO_InitStruct.pin = FL_GPIO_PIN_10;
 
 -     FL_GPIO_Init(GPIOA,&PC6_GPIO_InitStruct);
 
 -     
 
 -     FL_GPIO_SetTriggerEdge(GPIO,FL_GPIO_EXTI_LINE_9,FL_GPIO_EXTI_TRIGGER_EDGE_DISABLE);
 
 -     FL_GPIO_SetExtiLine9(GPIO,FL_GPIO_EXTI_LINE_9_PC6);
 
 -     FL_GPIO_EnableDigitalFilter(GPIO,FL_GPIO_EXTI_LINE_9);
 
 -     FL_GPIO_SetTriggerEdge(GPIO,FL_GPIO_EXTI_LINE_9,FL_GPIO_EXTI_TRIGGER_EDGE_FALLING);
 
 -     FL_GPIO_ClearFlag_EXTI(GPIO,FL_GPIO_EXTI_LINE_9);
 
 -     
 
 -     
 
 -     NVIC_DisableIRQ(GPIO_IRQn);
 
 -     NVIC_SetPriority(GPIO_IRQn,2);
 
 -     NVIC_EnableIRQ(GPIO_IRQn);  
 
 - }
 
  
- int main(void)
 
 - {
 
 -     SystemInit();
 
 -     SysTick_Config(8000000);       
 
 -     Do_DelayStart()
 
 -     While_DelayMsEnd(300);
 
 -     led1Init();
 
 -     extiPC6Init();
 
 -     while(1)
 
 -     {
 
 -         if(FL_GPIO_GetInputPin(GPIOC,FL_GPIO_PIN_6)==0)
 
 -         {
 
 -             FL_GPIO_ResetOutputPin(GPIOC,FL_GPIO_PIN_0);
 
 -         }
 
 -         else
 
 -         {
 
 -             FL_GPIO_SetOutputPin(GPIOC,FL_GPIO_PIN_0);
 
 -         }
 
 -         if(FL_GPIO_GetInputPin(GPIOA,FL_GPIO_PIN_10)==0)
 
 -         {
 
 -             FL_GPIO_ResetOutputPin(GPIOC,FL_GPIO_PIN_1);
 
 -         }
 
 -         else
 
 -         {
 
 -             FL_GPIO_SetOutputPin(GPIOC,FL_GPIO_PIN_1);
 
 -         }
 
 -     }
 
 -     
 
 -     
 
 - }
 
 - void GPIO_IRQHandle(void)
 
 - {
 
 -     if(FL_GPIO_IsActiveFlag_EXTI(GPIO,FL_GPIO_EXTI_LINE_9))
 
 -     {
 
 -         FL_GPIO_ToggleOutputPin(GPIOC,FL_GPIO_PIN_0);
 
 -         FL_GPIO_ToggleOutputPin(GPIOC,FL_GPIO_PIN_1);
 
 -         FL_GPIO_ToggleOutputPin(GPIOB,FL_GPIO_PIN_10);
 
 -         FL_GPIO_ToggleOutputPin(GPIOB,FL_GPIO_PIN_9);
 
 -         FL_GPIO_ClearFlag_EXTI(GPIO,FL_GPIO_EXTI_LINE_9);
 
 -     }
 
 - }
 
  
  复制代码 
 
 |   
 
 
 
 |