標題: STM32學習之EXTI(外部中斷篇) [打印本頁]

作者: xiaos    時間: 2015-4-10 17:37
標題: STM32學習之EXTI(外部中斷篇)
使用EXTI要先設置NVIC;

void NVIC_Configuration()
{
       NVIC_InitTypeDef       NVIC_InitStructure;
      
       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//選擇中斷優(yōu)先級分組
   NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//設置0管腳為 中斷管腳      
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//設置先占式優(yōu)先級  
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//設置從占式優(yōu)先級         
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能         
    NVIC_Init(&NVIC_InitStructure);
}
接著設置EXTI 這里我選擇使用EXTI0
void EXTI_Configuration()
{
       EXTI_InitTypeDef        EXTI_InitStructure;
EXTI_DeInit();    //將EXTI 設置為默認值
      
       GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);     //選擇A0為中斷管腳
      
   EXTI_InitStructure.EXTI_Line = EXTI_Line0;           //選擇0通道
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   //選擇為中斷
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;   //設置沿下降沿中斷
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;         //使能      
   EXTI_Init(&EXTI_InitStructure);         
}
注意完成一次中斷后要把中斷標準位 清空 使用EXTI_ClearITPendingBit(EXTI_Line0);
而且還要把 復用時鐘打開 使用
RCC_APB2PeriohClockCmd(RCC_APB2Periph_AFIO,ENABLE);







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1