新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32中EXTI(外部中斷)和NVIC(嵌套向量中斷)的關系

        STM32中EXTI(外部中斷)和NVIC(嵌套向量中斷)的關系

        作者: 時間:2016-11-25 來源:網絡 收藏
        NVIC是Cortex-M3核心的一部分,關于它的資料不在《STM32的技術參考手冊》中,應查閱ARM公司的《Cortex-M3技術參考手冊》

        Cortex-M3的向量中斷統一由NVIC管理
        EXTI是ST公司在其STM32產品上擴展的外中斷控制。它負責管理映射到GPIO引腳上的外中斷和片內幾個集成外設的中斷(PVD,RTC alarm,USB wakeup,ethernet wakeup),以及軟件中斷。其輸出最終被映射到NVIC的相應通道。因此,配置EXTI中斷的過程必然包含對NVIC的配置,例如下面配置EXTI0的過程,就要首先配置EXTI控制器(使能相應的中斷線,選擇中斷/事件模式,觸發邊沿極性),然后再配置NVIC控制器(EXTI0映射在NVIC上的通道號,中斷優先級,中斷屏蔽狀態):

        本文引用地址:http://www.104case.com/article/201611/321173.htm


        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);


        EXTI_InitStructure.EXTI_Line = EXTI_Line0;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; // or Rising
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);


        NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;// EXTI0_IRQn is defined in stm32f10x.h
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);

        EXTI0_IRQn的值,其實就是EXTI0中斷向量在中斷向量表中的位置(STM32技術參考手冊中斷向量表Position欄中的數值)



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 威海市| 通道| 广东省| 都昌县| 黄大仙区| 荥经县| 龙山县| 乡城县| 平安县| 涞源县| 游戏| 长子县| 巴彦县| 密山市| 天气| 沙田区| 得荣县| 大英县| 岱山县| 清苑县| 德格县| 牡丹江市| 前郭尔| 浠水县| 平乡县| 禹州市| 台中市| 开原市| 连州市| 乌恰县| 永顺县| 定安县| 科技| 福建省| 上林县| 盐津县| 仁怀市| 纳雍县| 五华县| 梁山县| 孟津县|