STM32 中断设置
EXTI_InitTypeDefEXTI_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;GPIO_EXTILineCo...
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource0);//定义PE0为外部中断
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource1);//定义PE1为外部中断
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
// EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line1; //外部中断1
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
//定义外部中断0中断优先级
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//定义外部中断1中断优先级
NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_Init(&NVIC_InitStructure);
按下PE0对应的按键,外部中断0下降沿触发,
按下PE1对应的按键,外部中断1上升沿触发,
Question:
初始化中只定义了PE0为外部中断口,哪里设置了PE0是触发外部中断0
初始化中只定义了PE1为外部中断口,哪里设置了PE1是触发外部中断1
按下按下PE0对应的按键,外部中断0下降沿触发,但是松开按键时产生了一个上升沿,为什么外部中断1不触发? 展开
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource0);//定义PE0为外部中断
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource1);//定义PE1为外部中断
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
// EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line1; //外部中断1
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
//定义外部中断0中断优先级
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =3;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//定义外部中断1中断优先级
NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_Init(&NVIC_InitStructure);
按下PE0对应的按键,外部中断0下降沿触发,
按下PE1对应的按键,外部中断1上升沿触发,
Question:
初始化中只定义了PE0为外部中断口,哪里设置了PE0是触发外部中断0
初始化中只定义了PE1为外部中断口,哪里设置了PE1是触发外部中断1
按下按下PE0对应的按键,外部中断0下降沿触发,但是松开按键时产生了一个上升沿,为什么外部中断1不触发? 展开
3个回答
展开全部
再看看自己的代码吧,PE0 是下降沿,PE1 是上升沿,怎么触发!!
追问
为什么没有人认真在看我问的是什么.
我问的是哪里设置了PE0是触发外部中断0 .哪里设置了PE1是触发外部中断1
我只看到PE0和PE1在代码中设置为外部中断引脚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你按的是PE0 又不是PE1 怎么能触发1
更多追问追答
追问
初始化中只定义了PE0为外部中断口,哪里设置了PE0是触发外部中断0
初始化中只定义了PE1为外部中断口,哪里设置了PE1是触发外部中断1
追答
翻阅使用手册-外部中断部分-各外部中断对应管脚及触发条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
终端重口是的吧
追问
请讲详细点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询