色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          K60 GPIO外部中斷

          作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
          K60幾乎可以把任意一個(gè)GPIO用作外部中斷
          要用外部中斷,就要配置好寄存器,寫好中斷函數(shù)
          我這里用A口的19號(hào)引腳作為按鍵外部中斷檢測,A口的10號(hào)引腳做LED輸出
          void init_gpio()
          {
          gpio_init_struct.GPIO_PTx = PTA; //PORTA
          gpio_init_struct.GPIO_Pins = GPIO_Pin19; //引腳6、7
          gpio_init_struct.GPIO_Dir = DIR_INPUT; //輸入
          gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP|IRQC_FA; //內(nèi)部上拉|上升沿中斷
          gpio_init_struct.GPIO_Isr = porta_isr; //中斷函數(shù)
          LPLD_GPIO_Init(gpio_init_struct);
          //使能中斷
          LPLD_GPIO_EnableIrq(gpio_init_struct);
          gpio_init_struct.GPIO_PTx=PTA;
          gpio_init_struct.GPIO_Pins = GPIO_Pin10;
          gpio_init_struct.GPIO_Dir = DIR_OUTPUT;
          gpio_init_struct.GPIO_Output = OUTPUT_H;
          gpio_init_struct.GPIO_PinControl = IRQC_DIS;
          LPLD_GPIO_Init(gpio_init_struct);
          }
          第五行的gpio_init_struct.GPIO_Isr = porta_isr;是把中斷函數(shù)的名字賦給GPIO_Isr,用來存中斷函數(shù)的地址指針,然后使能中斷
          中斷函數(shù)
          void porta_isr()
          {
          if(LPLD_GPIO_IsPinxExt(PORTA, GPIO_Pin19))
          {
          //去抖
          delay();
          if(PTA19_I==0)
          {
          PTA10_O=0;
          delay();delay();delay();
          delay();delay();delay();
          delay();delay();delay();
          PTA10_O=1;
          }
          }
          }
          這個(gè)中斷函數(shù)的名字就是給GPIO_Isr的值,GPIO的每一個(gè)PIN都有中斷標(biāo)志位,而LPLD_GPIO_IsPinxExt(PORTx, GPIO_Piny)就是PORTx的Piny端口的中斷標(biāo)志位。一旦產(chǎn)生中斷,標(biāo)志位為1,執(zhí)行中斷函數(shù)內(nèi)容。
          還有提示,這里的中斷函數(shù)是要聲明的,和51不一樣,51的是可以不用聲明的



          關(guān)鍵詞: K60GPIO外部中

          評論


          技術(shù)專區(qū)

          關(guān)閉