本帖最后由 xiaoxiaoyuwu 于 2016-5-19 15:13 编辑
最近在调试stm32f405芯片的USB HID通讯的时候,遇到烧写程序烧写一次后,就不能再次烧写。一直怀疑是芯片的问题或者调试器的问题,从stlink到jlink徘徊,甚至怀疑过keil的问题。但是一次偶然的机会,就解决了。详细遇到的bug和怎么解决的。希望对大家有所帮助。
1. 当你编译烧写一个程序之后
2. 当你再次编译,写入的时候出现了 当发现配置都完全正确,但是依旧不能写入程序时,你是不是怀疑过你芯片的问题?是不是怀疑过你的stlink的问题?怀疑电路的问题?等等…….
3. 无论你怎样操作stlink,还是没办法去连接设备,无论你选择 Normal or HotPlug mode.
4. 解决问题的办法
(1) 重启设备(stm32模块)的电源
(2) 重新打开stlink软件,并连接设备
(3) 整个芯片 (Flash memory erased.)
(4) 检查你原程序中的时钟设置以及你实际使用的晶振的情况。
注意:实际使用的时钟晶振为25M,但是在配置的过程中却使用的是8M。所以时钟导致芯片没有正常工作。 故烧写程序出现故障。把它的时钟改成25M后,就可以正常烧入程序了。
总结:不要去轻易的去怀疑芯片的问题/烧入器的问题/电路的问题。首先先检查程序的问题,比如时钟的问题/GPIO配置的问题等。
|