OpenEdv-开源电子网

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

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

[复制链接]

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2011-7-22
在线时间
12 小时
发表于 2015-8-2 20:22:42 | 显示全部楼层 |阅读模式
5金钱
 做EXTI实验,探索者开发板上的key2作为进入外部中断的按键,在main()函数中,按照如下方法编译后程序不执行,卡住不动了
NVICInit(); //所有的中断的总配置
EXTI2_ControlInit();
SYSCFG_EXTIInit();//外部中断配置

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

我把程序传到附件中,希望各位大神帮忙解决一下,谢谢!!!!!

NO.6外部中断事件.rar

3.13 MB, 下载次数: 46

最佳答案

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

问题的根本原因,是因为你的 SysTick_DelayInit(168); 这个放错了地方。 你居然把这个初始化,放到了中断初始化之后,而你在中断服务函数又调用了delay函数,结果就是,delay还没初始化,就已经被调用了,所以,就卡死在delay里面出不来了,永远无法完成延时。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-8-2 20:22:43 | 显示全部楼层
问题的根本原因,是因为你的
SysTick_DelayInit(168);
这个放错了地方。
你居然把这个初始化,放到了中断初始化之后,而你在中断服务函数又调用了delay函数,结果就是,delay还没初始化,就已经被调用了,所以,就卡死在delay里面出不来了,永远无法完成延时。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2015-8-2 20:56:24 | 显示全部楼层
应该是时钟配置改了,或者是中断设置改了
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复

使用道具 举报

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2011-7-22
在线时间
12 小时
 楼主| 发表于 2015-8-2 21:25:10 | 显示全部楼层
回复【2楼】ST-FAE-SALE:
---------------------------------
版主 我这两个函数实现不同的功能 一个是先配置SYSCFG的SYSCFG_EXTI寄存器,另一个函数是配置EXTI相关寄存器用于设置如何触发外部中断 没有更改时钟和修改中断设置  能帮忙看一下附件 分析一下吗 搞了一天也没有搞懂 麻烦了
回复

使用道具 举报

13

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2011-7-22
在线时间
12 小时
 楼主| 发表于 2015-8-2 23:07:49 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
外部中断触发的条件是下降沿触发,在SysTick_DelayInit(168)这个函数之前没有对IO口初始化,I/O口的状态是无上拉和下拉,没有触发中断如何进入中断的呢??
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-8-2 23:29:45 | 显示全部楼层
回复【5楼】xiajifeihhz:
---------------------------------
因为你配置完中断就进入中断服务函数了。

不过这问题我也不知道为什么,只能说:经常遇到。原因无解。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 00:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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