欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

stm32庫中EXTI_GetFalgStatus與EXTI_GetITStatus的區別

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年05月15日   【字體:

一個是獲取狀態的,一個是獲取中斷的。

 
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;
}
 
關閉窗口

相關文章