在某宝上买了五个最小系统核心板是STM32F103C8T6的芯片,刚拿到手准备下载程序调试,上电后板子自带LED闪烁,这是商家自己下载的示例程序,说明芯片工作着,用KEIL4进行下载自己程序,把自己编译好的程序下载。用的JLINK的四线下载调试下载口,SW的调试接口,点击下载后发现擦除成功,下载失败,提示:
Load "..\\Output\\STM32-DEMO.axf"
Set JLink Project File to "F:\文件\RFID\程序\电机\USER\JLinkSettings.ini"
* JLink Info: Device "STM32F103T8" selected (64 KB flash, 20 KB RAM).
JLink info:
------------
DLL: V4.56 , compiled Oct 22 2012 19:40:04
Firmware: J-Link ARM V8 compiled Nov 28 2014 13:44:46
Hardware: V8.00
S/N : XXXXXXXX
Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull
* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: Found SWD-DP with ID 0x1BA01477
* JLink Info: TPIU fitted.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
* JLink Info: Found Cortex-M3 r1p1, Little endian.
ROMTableAddr = 0xE00FF003
Target info:
------------
Device: STM32F103T8
VTarget = 3.300V
State of Pins:
TCK: 0, TDI: 0, TDO: 0, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints: 4
JTAG speed: 500 kHz
Erase Done.
Programming Failed!
Error: Flash Download failed - "Cortex-M3"
弹出窗口提示:
下载不成功但是把原来的程序擦了,LED也不亮了,我的世界瞬间变暗了。想了想是不是这块板子的问题,懒得上万用表,直接下一块板子,把剩下的四个最小系统板都下载了都是这种情况,出厂的程序全成功擦除,但是自己程序下载不了,这次五个小板上的LED全灭了。开始百度找原因。
其中常见错误链接:http://www.stmcu.org/module/forum/thread-566492-1-1.html
http://www.elecfans.com/emb/danpianji/20120905287381_15.html
度娘的原因差不多都试过了但对我的板子没有作用,分析可能芯片原因,正好手头有这个型号的芯片,就拿风枪吹下来,换了个stm32,上电用jlink下载,心情异常激动啊,点击下载,成功了。果断给客服打电话,客服说联系技术人员,这一联系,没影了,还是自己动手解决吧,继续分析,把原因定位到芯片上了,可能是由于之前不当操作导致进入读写保护状态,导致无法擦写芯片,可以据说用jlink中Unsecure chip 选项就行了~~我用的是方式isp试的
这是STM32下载的三种方式 http://blog.chinaunix.net/uid-20788517-id-263475.html
我用的是其中的第二种 ,在用isp下载之前一定要把跳线BOOT1置0,BOOT0置1,BOOT具体功能:
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
用下载方式的第二种isp下载即串口下载,果然发现了问题,确实被保护了。看图真相
点击Remove protection那个解除保护即可。剩下的按照链接的做就行了。
boot0和boot1全跳到0;改用Jlink成功下载。剩下的几块都用isp下载后,也全好了。
浪费了一下午的时间,都是写保护惹的祸。晚上又是不眠之夜,还有很多code没写。
刚才看了有关文章不用isp方式解除写保护,用jlink就行,至于如何操作这个软件,看那个stm32的三种下载方式里的教程的链接。
前提是先 Connect 成功。怎么设置该软件的参数,看本文链接。如果连接不成功检查boot引脚。
Target->connect.这里要先连接板子才可以进行unsecure chip 操作.连接的时候我一开始连接不上,很郁闷.但是不小心把启动方的跳线冒弄掉了,却发现可以了.也就是说,我是在从片bootloader的启动方式下(即使用串口的那种方式)连接上的.连接上之后.targer->unsecure chip.提示成功.如图:
4.正常用Keil里的下载方式就可以下载了。
gpio_adc
2016.01.22