新聞中心

        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庫函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 瑞丽市| 建阳市| 贡觉县| 柘荣县| 镶黄旗| 临朐县| 兴海县| 交城县| 鄂温| 辽中县| 鸡东县| 富阳市| 鄂托克前旗| 巴南区| 保靖县| 来宾市| 赣州市| 洪泽县| 临汾市| 温泉县| 清远市| 思茅市| 瑞丽市| 西峡县| 灵宝市| 花莲县| 五指山市| 乌拉特中旗| 华容县| 卢氏县| 汉阴县| 鄱阳县| 江川县| 方山县| 郯城县| 钟祥市| 资阳市| 绿春县| 蒲城县| 库尔勒市| 客服|