打印
[STM32F1]

EXTI中断进不去

[复制链接]
2198|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
areak|  楼主 | 2014-4-25 20:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
按键中断,一按下按键,程序就进入启动代码文件的第324行,是汇编语言“B”,是个死循环。不知道什么原因,有没有人遇到过?
沙发
areak|  楼主 | 2014-4-25 20:03 | 只看该作者

使用特权

评论回复
板凳
mmuuss586| | 2014-4-25 21:13 | 只看该作者
中断程序的名称不对
找不到中断的入口地址,就跑那里了。

使用特权

评论回复
地板
airwill| | 2014-4-25 21:57 | 只看该作者
那里可是异常故障,非法和默认中断的地址了.
中断程序的名称不对  有可能.
也可能遇到 Fault 了

使用特权

评论回复
5
areak|  楼主 | 2014-4-26 16:39 | 只看该作者
mmuuss586 发表于 2014-4-25 21:13
中断程序的名称不对
找不到中断的入口地址,就跑那里了。

中断程序名称是没有问题的,仔细检查过。

使用特权

评论回复
6
areak|  楼主 | 2014-4-26 16:42 | 只看该作者
airwill 发表于 2014-4-25 21:57
那里可是异常故障,非法和默认中断的地址了.
中断程序的名称不对  有可能.
也可能遇到 Fault 了

遇到Fault,是不是就无解了,用的是STM32F103ZET6单片机,开发环境MDK 4.74,板子是自己用覆铜板腐蚀的,JTAG方式不好用,但是SW方式可以用,各种问题很多,愁人。
目前只有闪灯可以正常工作,还是用的延时实现的。

使用特权

评论回复
7
mmuuss586| | 2014-4-26 20:22 | 只看该作者
那说明JTGA接口的有几个引脚硬件有问题吧。
程序,你可以官方的程序直接烧进去看看,就知道是不是程序问题了。
另外芯片哪里买的?以前没用过的话,最好去申请样品看看。

使用特权

评论回复
8
香水城| | 2014-4-26 20:45 | 只看该作者
你的这个启动文件有问题吧?截图中若干interrupt handler都跳到一个地方了。

使用特权

评论回复
9
airwill| | 2014-4-26 22:00 | 只看该作者
areak 发表于 2014-4-26 16:42
遇到Fault,是不是就无解了,用的是STM32F103ZET6单片机,开发环境MDK 4.74,板子是自己用覆铜板腐蚀的,J ...

遇到Fault,是不是就无解了, 不会, 很可能硬件初始化的问题. 当然还有软件操作不当.
还是可以通过调试器, 从堆栈地址找到故障点, 捕捉到故障的原因

使用特权

评论回复
10
yzzly| | 2014-4-27 09:37 | 只看该作者
找不到正确的中断函数入口地址!

使用特权

评论回复
11
areak|  楼主 | 2014-4-27 12:20 | 只看该作者
mmuuss586 发表于 2014-4-26 20:22
那说明JTGA接口的有几个引脚硬件有问题吧。
程序,你可以官方的程序直接烧进去看看,就知道是不是程序问题 ...

芯片是淘宝买的

使用特权

评论回复
12
areak|  楼主 | 2014-4-27 12:20 | 只看该作者
香水城 发表于 2014-4-26 20:45
你的这个启动文件有问题吧?截图中若干interrupt handler都跳到一个地方了。

启动文件,都是这样的吧,你打开看看.

使用特权

评论回复
13
mmuuss586| | 2014-4-27 12:33 | 只看该作者
areak 发表于 2014-4-27 12:20
芯片是淘宝买的

中断函数发上来看看,或者程序法上来

使用特权

评论回复
14
areak|  楼主 | 2014-4-27 18:26 | 只看该作者
Output文件夹内的文件被我删掉了,否则上传不了,太大了。 my_stm32_pro - Copy.zip (307.24 KB)

使用特权

评论回复
15
areak|  楼主 | 2014-4-27 18:27 | 只看该作者
mmuuss586 发表于 2014-4-27 12:33
中断函数发上来看看,或者程序法上来


已将工程上传,见楼上。我用的是PA2口。

使用特权

评论回复
16
mmuuss586| | 2014-4-27 18:36 | 只看该作者
areak 发表于 2014-4-27 18:27
已将工程上传,见楼上。我用的是PA2口。

看到了,马上看。
对于库文件,最好生成LIB库。
这样编译会快点:D

使用特权

评论回复
17
mmuuss586| | 2014-4-27 18:47 | 只看该作者
本帖最后由 mmuuss586 于 2014-4-27 18:49 编辑

while(1) {}
最好改成while(1) {;} 至少价格“;”。

主要是你中断的函数名不对,
IRQ被你写成IRO了,
程序不飞才怪。

11.jpg (6.05 KB )

11.jpg

使用特权

评论回复
18
areak|  楼主 | 2014-5-3 17:15 | 只看该作者
mmuuss586 发表于 2014-4-27 18:47
while(1) {}
最好改成while(1) {;} 至少价格“;”。

惭愧啊,多谢

使用特权

评论回复
19
mmuuss586| | 2014-5-3 19:06 | 只看该作者
areak 发表于 2014-5-3 17:15
惭愧啊,多谢

解决了吧?

使用特权

评论回复
20
lr2131| | 2014-5-4 09:40 | 只看该作者
B   .是死循环。触发外部中断跳转到中断是没问题,问题是你在外部没有这个外部中断ISR的定义或者是没有编译器没有链接到EXIT的ISR。

你搜索下EXIT的ISR,看看有没有定义,定义好了后,在启动文件里,外部声明下,然后从 B    .的上面找到EXIT的handle,注释掉这行。重新编译再测试。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

67

帖子

0

粉丝