前两日调试EXTI中断程序,程序很简单抄了网上的范例,
起初调试正常,可以正常运行,但我在程序中加入另外的代码后问题出现,表现为中断莫名其妙的开始响应!
检查自己的程序,未发现异常,中断部分的设置也没有为题。
逐步屏蔽后加入的代码,依据屏蔽的代码不同,单步运行后从不同的位置跳入中断。怪哉怪哉....反复调试若干遍,花费时间2天有余...
百思不得其解之际,又检查了自己的板子,看到BOOT1悬空,心中一动,当初图省事,空了此脚,难不成问题在此?
找了调帽装上,一切正常,吐血....
.....(心里活动省略200字)
原来,虽然boot0置0了,但是boot1还是不能悬空的呀!
----------------------------------------------------------------------------------------------------
另外一个小技巧:
调试程序后进入中断,未清除中断退出debug模式,再次debug的时候因为iar 5.20 debug 的复位功能并未自动清除中断,所以此时程序会自行进入中断,对调试造成困扰,
解决方法是在main中第一句就放入中断清除语句。
运行 复位 运行 就正常了,就不用再手动去按板子上的reset了。