新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32開發板學習筆記--外部中斷

        STM32開發板學習筆記--外部中斷

        作者: 時間:2016-11-28 來源:網絡 收藏
        1、先去掉“stm32f10x_conf.h”中TIM前的注釋符號

        2、在NVIC_Configuration();中加入
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// 選擇使用優先級分組第1組
        //使能EXTI3中斷
        NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQChannel;
        //設置通道
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //指定搶占式優先級別0
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
        // 指定響應優先級別0
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //通道全能
        NVIC_Init(&NVIC_InitStructure);

        3、初始化PA0時加入
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);//選擇 GPIOA_PIN3管腳用作外部中斷線路

        4, 外部中斷函數
        void EXTI_Configuration(){
        EXTI_InitTypeDef EXTI_InitStructure;
        EXTI_InitStructure.EXTI_Line = EXTI_Line3;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);
        }

        5, 在“stm32f10x_it.c” 的 void EXTI3_IRQHandler(void) 中加入中斷處理程序

        void EXTI3_IRQHandler(void)
        {
        if(EXTI_GetITStatus(EXTI_Line3) != RESET)

        {

        GPIO_SetBits(GPIOA, GPIO_Pin_1);//點亮PA1的發光二極管
        EXTI_ClearITPendingBit(EXTI_Line3);
        //清除EXTI3的中斷標志位

        }


        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 汉川市| 北票市| 育儿| 仁寿县| 岳阳市| 响水县| 张北县| 闽清县| 潞西市| 铜川市| 江源县| 扬中市| 攀枝花市| 宽城| 虎林市| 当涂县| 宁晋县| 精河县| 阳城县| 定西市| 丹巴县| 安阳县| 孟津县| 长海县| 方山县| 红原县| 新巴尔虎左旗| 丁青县| 鄂托克前旗| 洱源县| 鄂伦春自治旗| 泽库县| 林口县| 吉首市| 彩票| 蒙城县| 万安县| 惠东县| 怀集县| 封开县| 荥阳市|