stm32EXTI配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXTI配置规则
配置时钟→初始化IO口→配置中端向量优先级→指定中断IO口→中断方式→使能中断→写中断函数
主函数
Void main (void)
{
开启用到的外设时钟
Void RCC_Configuation();
初始化IO口
Void IO_Configuation();
中断设置
Void EXTI_Configuation()
{
定义结构变量
EXTI_InitTypeDef EXTI_InitStructure;
清除中断标志
EXTI_ClearPendingBit(EXTI_Linex);
选择中断管脚
GPIO_EXTILineConfig(GPIO_PortSourceGPIOx,GPIO_PinSourcex)
选择中段线路
EXTI_InitStructure.EXTI_Line(EXTI_Linex);
中断模式
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
中断触发方式
EXTI_InitStructure.EXTI_Trigger=EXTI_Teigger_Rising_Falling;
中段线路使能
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
初始化设置
EXTI_Init(&EXTI_InitStucture);
}
配置中断向量优先级
Void NVIC_Configuation()
{
定义结构(只定义一次)
NVIC_InitTypeDef NVIC_InitStructure;
选择中断分组(选择一次)
NVIC_PriorityGroupConfig(NVIC_Priority_group_x);
选择中断通道
NVIC_InitStructure.NVIC_IRQChannel=EXTIx_IRQChannel;
抢占式中断优先级设置
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=x;
响应式中断优先级设置
NVIC_InitStructure.NVIC_IRQChannelSubPriority=x;
使能中断
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
初始化设置
NVIC_Init(&NVIC_InitStruction);
}
死循环
While(1);
}
中断函数
Void EXTIx_IRQHandler(voie)
{
点亮LED
GPIO_SetBits(GPIOx,GPIO_Pin_x);
清除中断标志
EXTI_ClearITPendingBit(EXTI_Linex);
}