stm32EXTI配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

相关文档
最新文档