新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32庫函數EXTI_GetFlagStatus和EXTI_GetIT

        STM32庫函數EXTI_GetFlagStatus和EXTI_GetIT

        作者: 時間:2016-11-24 來源:網絡 收藏
        一個是獲取狀態的,一個是獲取中斷的。

        EXTI_GetFlagStatus只是純粹讀取中斷標志位的狀態,但是不一定會響應中斷(EXT_IMR寄存器對該中斷進行屏蔽);而EXTI_GetITStatus除了讀取中斷標志位,還查看EXT_IMR寄存器是否對該中斷進行屏蔽,在中斷掛起&沒有屏蔽的情況下就會響應中斷。仔細看看代碼就知道區別了
        FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
        {
        FlagStatus bitstatus = RESET;

        assert_param(IS_GET_EXTI_LINE(EXTI_Line));

        if ((EXTI->PR & EXTI_Line) != (uint32_t)RESET)
        {
        bitstatus = SET;
        }
        else
        {
        bitstatus = RESET;
        }
        return bitstatus;
        }

        ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
        {
        ITStatus bitstatus = RESET;
        uint32_t enablestatus = 0;

        assert_param(IS_GET_EXTI_LINE(EXTI_Line));

        enablestatus = EXTI->IMR & EXTI_Line;
        if (((EXTI->PR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET))
        {
        bitstatus = SET;
        }
        else
        {
        bitstatus = RESET;
        }
        return bitstatus;
        }

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



        關鍵詞: STM32庫函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 公主岭市| 桂平市| 佛冈县| 朔州市| 衡水市| 安泽县| 贵溪市| 大埔区| 泰州市| 宜兰市| 东台市| 罗山县| 桂林市| 双城市| 上虞市| 枞阳县| 辰溪县| 白银市| 息烽县| 眉山市| 岳阳市| 张家港市| 常德市| 闵行区| 合阳县| 开阳县| 泰州市| 江津市| 阳东县| 阜康市| 芜湖县| 尼勒克县| 衡南县| 乌什县| 清远市| 澄江县| 万全县| 长寿区| 潼南县| 荔浦县| 丹江口市|