1.void EXTI_DeInit(void)
功能:将EXTI外设寄存器重置为默注释
注释:RCC_APB2PeriphResetCmd参数中没有EXTI外设的的宏,该外设重置采取的是直接向寄存器赋默认值的操作
例如:EXTI_DeInit();
2.void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
功能:根据EXTI_InitStruct结构体中所配置的参数来初始化EXTI外设
注释:结构体中模式成员设置了被使能线路为事件请求还是中断请求
例如:EXTI_Init(&EXTI_InitStructure);
3.void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
功能:将EXTI_InitStruct结构体中各成员按默认值填充
注释:只填充了结构体,还没有将参数写入到寄存器中(xxx_Init)
例如:EXTI_StructInit(&EXTI_InitStructure);
4.void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)
功能:产生一个软件中断
注释:如果在EXTI_IMR和EXTI_EMR中允许产生该中断,则此时将产生一个中断
例如:EXTI_GenerateSWInterrupt(EXTI_Line6);
5.FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
功能:检查指定的外部中断线的标志是否被置位(如果在EXTI_IMR和EXTI_EMR中允许产生该中断,则此时将产生一个中断)
注释:该函数没有检查EXTI_IMR和EXTI_EMR状态,它只是纯粹读取中断标志位的状态,但是不一定会响应中断
中断发生有两个条件,一是中断标志位置位,二是中断允许
例如:
if(EXTI_GetFlagStatus(EXTI_Line8) == RESET)
{
}
else
{
}
6.void EXTI_ClearFlag(uint32_t EXTI_Line)
功能:清除EXTI线路的挂起标志
注释:与EXTI_ClearITPendingBit完全一致
例如:EXTI_ClearFlag(EXTI_Line6);
7.ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
功能:检查指定外部中断线的状态是否有效,检查中断状态,也就是中断是否发生
注释:除了读取中断标志位,还查看 EXT_IMR 寄存器是否对该中断进行屏蔽,在中断挂起 & 没有屏蔽的情况下就会响应中断
例如:
if(EXTI_GetITStatus(EXTI_Line8) == RESET)
{
}
else
{
}
8.void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
功能:清除EXTI线路挂起位
注释:与EXTI_ClearFlag完全一致
例如:EXTI_ClearITPendingBit(EXTI_Line6);