STM32F072-Nucleo开发板故障排除一例
本帖最后由 wenyangzeng 于 2015-1-12 22:37 编辑在使用STM32F072-Nucleo开发板调试过程中,原本好好的开发板,在下载完成一个项目并正常进入硬件仿真后,欲退出仿真环境修改代码时出现了问题,调试窗口出现一段提示:
图1
退出KEIL5后再重新进入KEIL5,发现已经无法再对开发板下载代码了:
图2
图3
难道开发板就这样无疾而终?不死心,检查开发板相关跳线、USB连接线、USB驱动程序,均正常。
换一个思路查原因:由于STM32F072-Nucleo开发板的代码下载和仿真是使用SWD的2线方式进行,查阅STM32F072数据手册可知,PA13是SWD-DIO,PA14是SWD-SCK,我在这个项目中凑巧使用PA14做输出功能用。这样当代码下载后进入仿真运行后,PA14便配置成输出模式,此时片子的SWD功能将失去。这时当欲退出仿真环境时就出现图1所示故障提示。紧接着当你想重新下载代码时,由于PA14的SCK功能丧失,就出现图2图3无法下载代码的故障提示了。可以判定:该开发板硬件方面无故障,只是SWD引脚被设置成输出所致,只要改回初始状态即可。问题是你现在已无法对它下载代码改回初值了。 经过不断摸索,终于找到解决方法,操作如下:
图4
重新编译项目,改回PA14的配置,在下载之前,按住开发板上的“RESET”键不放,在点击下载键的瞬间松开”RESET“键,代码终于顺利下载。由于STM32F072在nRESET从低电平恢复到高电平时,系统会有一段延时后才开始代码运行,此时PA14还处于初始状态,在这个期间仍有SWD功能。有惊无险:这片STM32F072-Nucleo开发板就这样起死回生了。(图4)
在此将这段虚惊共享给各位,愿各位少走弯路。另外经过实验,PA13同样不要配置成输出模式,切记!除非你的板子代码下载后就出厂,刚好可以让客户无法从SWD端读代码了。
不错的经验,感谢分享 经常这样玩 好人啊~楼主 如果确实要用到PA13和PA14,可以在IO初始化前,加一小段延时就可以解决 总结很到位啊 zhous 发表于 2015-1-12 22:07
如果确实要用到PA13和PA14,可以在IO初始化前,加一小段延时就可以解决
回复5楼:加延时只能解决代码下载的问题,但是你如果要仿真就会挂了。 哈哈 好经验 想想芯片的设计者不会就这样把芯片完全由软件来决定功能了.所以总有个逻辑,充当后门, 让我们可以重新来过
页:
[1]