<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM8_GPIO 外部中斷輸入

          STM8_GPIO 外部中斷輸入

          作者: 時間:2016-12-03 來源:網絡 收藏
          C語言:Codee#11240
          /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
          + 實驗平臺: ST 官方三合一套件
          + 硬件 : STM8S105S6T6C
          + 開發(fā)平臺: IAR For STM8 1.10
          + 仿真器 : ST-Link
          ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

          #include "stm8s.h"
          /*******************************************************************************
          * ==時鐘初始化函數(shù)==
          * CLK_DeInit(); --> 復位時鐘寄存器
          * CLK_HSICmd(ENABLE); --> 使能內部高速時鐘
          * CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); --> 配置內部高速時鐘(時鐘分頻器:2分頻)
          * CLK_ClockSecuritySystemEnable(); --> 開啟時鐘安全系統(tǒng)
          *******************************************************************************/
          voidCLK_INIT(void)
          {
          CLK_DeInit();
          CLK_HSICmd(ENABLE);
          CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);
          CLK_ClockSecuritySystemEnable();
          }
          /*******************************************************************************
          * ==I/O口初始化函數(shù)==
          * GPIO_DeInit(); --> 復位I/O端口 D
          * GPIO_Init(GPIOD , GPIO_PIN_7 , GPIO_MODE_IN_PU_IT);
          --> 使能PORTD_7, 設置為 輸入 ,上拉 ,帶中斷
          * GPIO_Init(GPIOD , GPIO_PIN_0 , GPIO_MODE_OUT_PP_LOW_SLOW);
          --> 使能PORTD_0, 設置為 輸出,推挽式 ,低電平 ,低速率
          *******************************************************************************/
          voidGPIO_INIT(void)
          {
          GPIO_DeInit(GPIOD);
          GPIO_Init(GPIOD,GPIO_PIN_7,GPIO_MODE_IN_FL_IT);
          GPIO_Init(GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_LOW_SLOW);// LED
          }
          /*******************************************************************************
          * ==外部中斷初始化函數(shù)==
          * EXTI_DeInit(); --> 初始化寄存器
          * EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD , EXTI_SENSITIVITY_FALL_ONLY); --> 設定下降沿觸發(fā)外部中斷
          *******************************************************************************/
          voidEXTI_INIT(void)
          {
          EXTI_DeInit();
          EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD,EXTI_SENSITIVITY_FALL_ONLY);
          }
          /*******************************************************************************
          * ==MAIN 函數(shù)==
          * 初始化 時鐘
          * 初始化 端口
          * 初始化 外部中斷觸發(fā)方式
          * 使能全局中斷
          *******************************************************************************/
          voidmain(void)
          {
          CLK_INIT();
          GPIO_INIT();
          EXTI_INIT();
          enableInterrupts();
          while(1);
          }
          /*******************************************************************************
          * ==中斷服務函數(shù) 函數(shù)==
          * PORTD_7是外部最高優(yōu)先級的中斷源(TLI)
          * 按下按鍵LED亮,松開按鍵則LED滅
          *******************************************************************************/
          #pragma vector=2
          __interruptvoidTLI_IRQHandler(void)
          {
          GPIO_WriteReverse(GPIOD,GPIO_PIN_0);//翻轉 管腳電平
          }


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();