新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32學(xué)習(xí)之--外部中斷

        STM32學(xué)習(xí)之--外部中斷

        作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        misc.h中定義的NVIC_InitTypeDef類型的結(jié)構(gòu)體:

        typedef struct
        {
        uint8_t NVIC_IRQChannel;//中斷向量

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

        uint8_t NVIC_IRQChannelPreemptionPriority;//中斷搶占優(yōu)先級(jí)

        uint8_t NVIC_IRQChannelSubPriority;//中斷向量?jī)?yōu)先級(jí)

        FunctionalState NVIC_IRQChannelCmd;//中斷使能(ENABLE or DISABLE)
        } NVIC_InitTypeDef;

        中斷優(yōu)先級(jí)組stm32中用4位來決定。



        外部中斷初始化

        1.開啟時(shí)鐘(外部中斷要開啟GPIO時(shí)鐘和AFIO時(shí)鐘)

        2.配置嵌套向量中斷控制器NVIC

        <1>選擇中斷優(yōu)先級(jí)組NVIC_PriorityGroup_0~NVIC_PriorityGroup_4。

        調(diào)用函數(shù)NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)完成優(yōu)先級(jí)組設(shè)定。

        <2>配置中斷源

        配置中斷向量NVIC_IRQChannel;

        配置中斷向量搶占優(yōu)先級(jí)NVIC_IRQChannelPreemptionPriority;

        配置中斷向量響應(yīng)優(yōu)先級(jí)NVIC_IRQChannelSubPriority;

        使能中斷NVIC_IRQChannelCmd; (ENABLE or DISABLE)

        調(diào)用函數(shù) NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)完成配置。

        3.GPIO口初始化

        GPIO口選擇GPIO_Pin

        外部中斷GPIO口為輸入模式,GPIO_Speed不用設(shè)置。

        GPIO輸入模式GPIO_Mode

        調(diào)用 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 完成配置。

        4.配置EXTI中斷線工作模式。

        調(diào)用GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);設(shè)置EXTI輸入線。

        配置輸入線EXTI_Line;

        配置輸入線模式為中斷模式.EXTI_Mode = EXTI_Mode_Interrupt;

        配置中斷觸發(fā)方式.EXTI_Trigger = EXTI_Trigger_Falling;

        使能中斷.EXTI_LineCmd = ENABLE;

        調(diào)用函數(shù) EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)。



        關(guān)鍵詞: STM32外部中

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 双桥区| 宜阳县| 岳普湖县| 保靖县| 当雄县| 青龙| 自贡市| 亚东县| 淮阳县| 乌恰县| 丰原市| 汤阴县| 保康县| 贵阳市| 开远市| 尖扎县| 大同市| 丽江市| 自贡市| 聊城市| 普宁市| 都匀市| 桂阳县| 丽江市| 河津市| 新平| 高台县| 雅江县| 洞口县| 余干县| 绵竹市| 长阳| 淮阳县| 鄂伦春自治旗| 泸州市| 富宁县| 肥西县| 南城县| 梓潼县| 建平县| 海兴县|