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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM8-利用外部中斷編寫兩個按鍵控制燈的亮滅

          STM8-利用外部中斷編寫兩個按鍵控制燈的亮滅

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          目的:熟悉外部中斷的使用。(兩個按鍵控制燈的亮滅)
          #include"stm8s.h"
          #include "stm8s_exti.h"
          #define uchar unsigned char
          #define uint unsigned int
          #define ulong unsigned long
          void delay(uint i)
          {
          while(i--);
          }
          void main()
          {

          GPIO_DeInit(GPIOD);
          GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);//輸出
          GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);//輸出
          GPIO_DeInit(GPIOB);
          GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_IN_FL_IT);//輸入
          GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_FL_IT);//輸入

          EXTI_DeInit();
          EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_FALL_ONLY);


          enableInterrupts();
          while (1)
          {
          }
          }
          #pragma vector=6//端口B中斷編號為4,4+2=6
          __interrupt void EXIT_PORTB_IRQHander(void)
          {
          if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
          {
          delay(250);//延時消抖動
          if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
          {
          while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0);//釋放檢測
          GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
          }
          }
          if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
          {
          delay(250);//延時消抖動
          if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
          {
          while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0);//釋放檢測
          GPIO_WriteReverse(GPIOD, GPIO_PIN_1);
          }
          }

          }



          關(guān)鍵詞: STM8外部中斷按鍵控制

          評論


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

          關(guān)閉