stm32编程配置一个I/O为EXTI中断的步骤
来源:互联网 发布时间:2018-11-19 分享至微信


配置一个I/O为EXTI中断的步骤:


GPIO_InitTypeDefGPIO_InitStructure;


EXTI_InitTypeDefEXTI_InitStructure;


NVIC_InitTypeDefNVIC_InitStructure;


//1.使能EXTIx线的时钟和第二功能AFIO时钟


RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA,ENABLE);



//NVIC_CONFIG();


//2.配置EXTIx线的中断优先级


NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);



NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;


NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;


NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;


NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;


NVIC_Init(&NVIC_InitStructure);


//3.配置EXTIx中断线的I/O口


GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;


GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;


GPIO_Init(GPIOA,&GPIO_InitStructure);



GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);//4.选定要配置为EXTI的I/O口线


//5.EXTIx中断线的工作模式的配置


EXTI_InitStructure.EXTI_Line=EXTI_Line3;


EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;


EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;


EXTI_InitStructure.EXTI_LineCmd=ENABLE;



EXTI_Init(&EXTI_InitStructure);




[ 新闻来源:互联网,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论

暂无评论哦,快来评论一下吧!