OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5102|回复: 2

外部中断设置问题

[复制链接]

7

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-7-12
在线时间
4 小时
发表于 2016-1-16 23:26:29 | 显示全部楼层 |阅读模式
1金钱


          KEY_Init();
         RCC->APB2ENR |= 1<<14;
        SYSCFG->EXTICR[1] |= 1<<10;  
        SYSCFG->EXTICR[1] &=~((1<<11)|(1<<9)|(1<<8)); //设置PE2为外部中断2
        SYSCFG->EXTICR[1] |= 1<<10;
        SYSCFG->EXTICR[1] &=~((1<<15)|(1<<13)|(1<<12)); //设置PE3为外部中断3
        SYSCFG->EXTICR[2] |= 1<<2;
        SYSCFG->EXTICR[1] &=~((1<<3)|(1<<1)|(1<<0)); //设置PE4为外部中断4
        SYSCFG->EXTICR[1] &=~((1<<3)|(1<<2)|(1<<1)|(1<<0)); //设置PA0为外部中断0
        EXTI->RTSR |= 1<<0;
        EXTI->FTSR |= ((1<<2)|(1<<3)|(1<<4));
        EXTI->IMR |=((1<<0)|(1<<2)|(1<<3)|(1<<4));
        NVIC->ISER[0] |=((1<<13)|(1<<15)|(1<<16)|(1<<17));
//        Ex_NVIC_Config(GPIO_E,2,FTIR);                 //下降沿触发
//        Ex_NVIC_Config(GPIO_E,3,FTIR);                 //下降沿触发
//        Ex_NVIC_Config(GPIO_E,4,FTIR);                 //下降沿触发
//         Ex_NVIC_Config(GPIO_A,0,RTIR);                  //上升沿触发
//        MY_NVIC_Init(3,2,EXTI2_IRQn,2);                //抢占3,子优先级2,组2
//        MY_NVIC_Init(2,2,EXTI3_IRQn,2);                //抢占2,子优先级2,组2          
//        MY_NVIC_Init(1,2,EXTI4_IRQn,2);                //抢占1,子优先级2,组2          
//        MY_NVIC_Init(0,2,EXTI0_IRQn,2);                //抢占0,子优先级2,组2       
F4的开发板用原子的例程就没问题,按我的设置就是不进中断。寄存器那个地方没有设置还是什么问题啊?

最佳答案

查看完整内容[请看2#楼]

这里有一个大坑,STM32大多数寄存器都是从1开始编号的,然而C的数组是从0开始编号的,所以你应该配置SYSCFG->EXTICR[0]这个寄存器。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-1-16 23:26:30 | 显示全部楼层
本帖最后由 xkwy 于 2016-1-17 17:41 编辑

这里有一个大坑,STM32大多数寄存器都是从1开始编号的,然而C的数组是从0开始编号的,所以你应该配置SYSCFG->EXTICR[0]这个寄存器。
re.png

reg.png

坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

7

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-7-12
在线时间
4 小时
 楼主| 发表于 2016-1-21 11:56:23 | 显示全部楼层
xkwy 发表于 2016-1-16 23:26
这里有一个大坑,STM32大多数寄存器都是从1开始编号的,然而C的数组是从0开始编号的,所以你应该配置SYSCFG ...

谢谢,第二天早晨才发现这个问题。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 00:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表