1. 程式人生 > >STM32庫函式詳解----(外部中斷/事件控制器 EXTI)

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