STM32庫函式詳解----(外部中斷/事件控制器 EXTI)
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_InitStruct);
EXTI_Line:
EXTI_Line選擇了待使能或失能的線路。
EXTI_Linex:外部中斷線x(0-18)。
EXTI_Mode:
EXTI_Mode設定了被使能線路的模式。
EXTI_Mode_Event:設定EXTI線路為事件請求。
EXTI_Mode_Interrupt:設定EXTI線路為中斷請求。
EXTI_Trigger:
EXTI_Trigger設定了被使能線路的觸發邊沿。
EXTI_Trigger_Falling:設定輸入線路的下降沿為中斷請求。
EXTI_Trigger_Rising
EXTI_Trigger_Rising_Falling:設定輸入線路的上升和下降沿為中斷請求。
EXTI_LineCmd:
EXTI_LineCmd用來定義選中線路的新狀態。它可以被設為ENABLE或者DISABLE。
3.void EXTI_StructInit (EXTI_InitTypeDef*EXTI_InitStruct)
函式解釋:將EXTI_InitStruct結構體中各成員按照預設值填充。只填充了結構體,還沒有將引數寫入到暫存器中(xxx_Init)。
例子:EXTI_StructInit (&EXTI_InitStruct);
溫馨提示:EXTI_InitStruct的預設值如下
EXTI_Line:EXTI_LineNone
EXTI_Mode:EXTI_Mode_Interrupt
EXTI_Trigger:EXTI_Trigger_Falling
EXTI_LineCmd:DISABLE
4.void EXTI_GenerateSWInterrupt (uint32_t EXTI_Line)
函式解釋:產生一個軟體中斷。
例如:EXTI_GenerateSWInterrupt(EXTI_Line6);
5.FlagStatus EXTI_GetFlagStatus (uint32_t EXTI_Line)
函式解釋:檢查指定的外部中斷線的標誌是否被置位。
註釋:該函式沒有檢查EXTI_IMR和EXTI_EMR狀態,它只是純粹讀取中斷標誌位的狀態,但是不一定會響應中斷
中斷髮生有兩個條件,一是中斷標誌位置位,二是中斷允許。
例如:FlagStatus EXTIStatus;
EXTIStatus= EXTI_GetFlagStatus ( EXTI_Line6)
6.void EXTI_ClearFlag(uint32_t EXTI_Line)
函式解釋:清除EXTI線路的掛起標誌位。
例如:EXTI_ClearFlag(EXTI_Line6);
7.ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
函式解釋:檢查指定外部中斷線的狀態是否有效,檢查中斷狀態,檢查中斷是否發生。
例如:ITStatus EXTIStatus;
EXTIStatus= EXTI_GetITStatus ( EXTI_Line6);
8.void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
函式解釋:清除EXTI線路的掛起位。
例如:EXTI_ClearITPendingBit(EXTI_Line6);