標題: 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 |