新聞中心

        STM8_GPIO 外部中斷輸入

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

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


        關(guān)鍵詞: STM8GPIO外部中斷輸

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 资溪县| 双鸭山市| 长子县| 广昌县| 台南市| 静宁县| 宁河县| 建湖县| 修武县| 南丹县| 临朐县| 莱州市| 上饶县| 襄樊市| 沅陵县| 三门峡市| 三穗县| 砚山县| 大冶市| 讷河市| 疏附县| 齐河县| 闻喜县| 夹江县| 图们市| 九台市| 仁怀市| 五大连池市| 元朗区| 鄄城县| 周至县| 郑州市| 楚雄市| 喀喇| 缙云县| 上犹县| 资源县| 钦州市| 开远市| 全州县| 岳池县|