急求问题原因:探索者开发板 外部EXTI中断实验出现的问题

2019-07-21 02:10发布

 做EXTI实验,探索者开发板上的key2作为进入外部中断的按键,在main()函数中,按照如下方法编译后程序不执行,卡住不动了
NVICInit(); //所有的中断的总配置
EXTI2_ControlInit();
SYSCFG_EXTIInit();//外部中断配置

但是将SYSCFG_EXTIInit();和EXTI2_ControlInit();换一下位置程序下载后就执行,为什么出现这种情况

我把程序传到附件中,希望各位大神帮忙解决一下,谢谢!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 07:28
问题的根本原因,是因为你的
SysTick_DelayInit(168);
这个放错了地方。
你居然把这个初始化,放到了中断初始化之后,而你在中断服务函数又调用了delay函数,结果就是,delay还没初始化,就已经被调用了,所以,就卡死在delay里面出不来了,永远无法完成延时。
ST-FAE-SALE
2楼-- · 2019-07-21 11:37
应该是时钟配置改了,或者是中断设置改了
xiajifeihhz
3楼-- · 2019-07-21 17:13
回复【2楼】ST-FAE-SALE:
---------------------------------
版主 我这两个函数实现不同的功能 一个是先配置SYSCFG的SYSCFG_EXTI寄存器,另一个函数是配置EXTI相关寄存器用于设置如何触发外部中断 没有更改时钟和修改中断设置  能帮忙看一下附件 分析一下吗 搞了一天也没有搞懂 麻烦了
xiajifeihhz
4楼-- · 2019-07-21 19:05
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 22:03
 精彩回答 2  元偷偷看……

一周热门 更多>