STM8L中斷線和中斷埠使用方法

Joker_Lin12138發表於2017-10-11

設定中斷有兩種方法:
1: 中斷線;
2:中斷埠;
方法1:

GPIO_Init( KEY1_PORT, KEY1_PIN ,GPIO_Mode_In_FL_IT);                //按鍵初始化
EXTI_SetPinSensitivity(EXTI_Pin_1,EXTI_Trigger_Falling);            //設定外部中斷1 為下降沿有效         
enableInterrupts();                                                 //使能全域性中斷                                                                                               

中斷入口          
disableInterrupts();                                                //關閉中斷
                                                                    //處理事件
EXTI_ClearITPendingBit(EXTI_IT_Pin1);                               //清除中斷標誌位                                               
enableInterrupts();                                                 //使能全域性中斷  

方法2:

EXTI_DeInit();                                                       //中斷初始化                                             
EXTI_SelectPort(EXTI_Port_B);                                        //選擇GPIOB                               
EXTI_SetHalfPortSelection(EXTI_HalfPort_B_LSB ,ENABLE   );           //選擇PB[3:0]
EXTI_SetPinSensitivity(EXTI_Pin_1, EXTI_Trigger_Falling);            //選擇埠線1 下降沿
ITC_SetSoftwarePriority(EXTI1_IRQn, ITC_PriorityLevel_1);            //設定中斷優先順序       
GPIO_Init( GPIOB, GPIO_Pin_1, GPIO_Mode_In_FL_IT);                   //初始化埠GPIOB_1             
中斷入口
disableInterrupts();                                                 //關閉中斷
                                                                     //處理事件 
EXTI_ClearITPendingBit(EXTI_IT_PortB );                              //清除標誌位
enableInterrupts();                                                  //使能全域性中斷