你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 4533|回复: 5

STM32F4中断进不去

[复制链接]

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-3-13 15:42:41 | 显示全部楼层 |阅读模式
 最近在学习STM32F4,碰到一个中断处理函数不能进入,其他中断函数都能进入,请大神指教。中断配置代码如下
void bsp_InitKeyEXTI(void)
{
        EXTI_InitTypeDef   EXTI_InitStructure;
        NVIC_InitTypeDef   NVIC_InitStructure;
       
        /* 使能SYSCFG时钟 */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
       
        /* 连接 EXTI Line8 到 PI8 引脚 */
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOI, EXTI_PinSource8);
        /* 连接 EXTI Line13 到 PC13 引脚 */
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
        /* 连接 EXTI Line11 到 PI11 引脚 */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOI, EXTI_PinSource11);
        /* 连接 EXTI Line3 到 PH3 引脚 */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource3);
        /* 连接 EXTI Line15 到 PH15 引脚 */
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource15);
        /* 连接 EXTI Line7 到 PG7 引脚 */
         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOG, EXTI_PinSource7);
        /* 连接 EXTI Line2 到 PH2 引脚 */
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource2);
        /* 连接 EXTI Line11 到 PF11 引脚 */
//        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF, EXTI_PinSource11);
       
        /* 配置 EXTI LineXXX */
        EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 | EXTI_Line7 | EXTI_Line8 \
                                      | EXTI_Line11 | EXTI_Line13| EXTI_Line15;
                                                                                                                               
        //EXTI_InitStructure.EXTI_Line = EXTI_Line13 | EXTI_Line11 |  EXTI_Line8 | EXTI_Line7 ;
       
        ///////////////////////////////////////////////////////////////////////////////
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        EXTI_Init(&EXTI_InitStructure);
       
       
        /* 设置NVIC优先级分组为Group2:0-3抢占式优先级,0-3的响应式优先级 */
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
       
        /* 中断优先级配置 最低优先级 这里一定要分开的设置中断,不能够合并到一个里面设置 */
        NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
       
        NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
}
当 EXTI15_10_IRQn和EXTI9_5_IRQn的抢占优先级设置为一样,即0x02或者0x03时都能进入。但是一个设置为0x02一个设置为0x03时,设置为0x03那个的中断函数就是进不去,不知道何原因。
<
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2014-3-14 09:48:38 | 显示全部楼层

RE:STM32F4中断进不去

中断是同时产生的,还是单独产生的?
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2014-3-14 11:29:48 | 显示全部楼层

RE:STM32F4中断进不去

test
回复 支持 反对

使用道具 举报

36

主题

541

回帖

4

蝴蝶豆

金牌会员

最后登录
2020-6-16
发表于 2014-3-14 21:32:10 | 显示全部楼层

回复:STM32F4中断进不去

 EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 | EXTI_Line7 | EXTI_Line8 \
                                      | EXTI_Line11 | EXTI_Line13| EXTI_Line15;   分开设置试试、
回复 支持 反对

使用道具 举报

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-3-16 22:00:53 | 显示全部楼层

回复:STM32F4中断进不去

回复第 2 楼 于2014-03-14 09:48:38发表:
中断是同时产生的,还是单独产生的?
单独产生的
 
回复 支持 反对

使用道具 举报

1

主题

3

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-3-16 22:01:42 | 显示全部楼层

回复:STM32F4中断进不去

回复第 4 楼 于2014-03-14 21:32:10发表:
 EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3 | EXTI_Line7 | EXTI_Line8 \
                                      | EXTI_Line11 | EXTI_Line13| EXTI_Line15;   分开设置试试、
试过了,单独写效果一样
 
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版