您现在的位置: 主页 > MCU > 单片机技术应用 > STM32库函数EXTI_GetFlagStatus和EXTI_GetITStatus区别是什么?
本文所属标签:
为本文创立个标签吧:

STM32库函数EXTI_GetFlagStatus和EXTI_GetITStatus区别是什么?

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
一个是获取状态的,一个是获取中断的。EXTI_GetFlagStatus只是纯粹读取中断标志位的状态,但是不一定会响应中断(EXT_IMR寄存器对该中断进行屏蔽);而EXTI_GetITStatus除了读取中断标志位,还查看EXT_

 

本文引用地址: http://www.21ic.com/app/mcu/201804/765846.htm

一个是获取状态的,一个是获取中断的。

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;
}

 

 



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STM32库函数EXTI_GetFlagStatus和EXTI_GetITStatus区别是什么?
 

"STM32库函数EXTI_GetFlagStatus和EXTI_GetITStatus区别是什么?"的相关文章

网站地图

围观()