-
1. 如果实在解决不了问题,建议和朋友一起看或者等自己脑子清醒、心态平和的时候再仔细研究一下,这点很重要!
-
2. 网上买的那种便宜的STLink确实稳定性不好,(也不保证贵的一定好)很有可能突然就出现类似于我遇到的问题,所以最好有备件可用。
-
3. STLink和Jlink似乎都不能为芯片供电,因此,烧写程序时,STM32芯片要单独供电,但那种便宜的STLink似乎反而可以,这一点倒是影响不大,记住就行了,不要被VCC引脚电压不是3.3V惊到就行了。
-
4. 选择一个仿真器之后,一定要先在Keil里面设置一下。 以STlink为例。
如果你①插上了STLink;②安装了STLink的驱动;③STLink与目标板接线没有问题;④目标开发板上电了,那么在settings中就能看到检测到的目标板芯片的型号。如果没有的话,就按照上面的顺序依次检查吧。
另外,还需要注意的是下面的port选项,到底是选择SWD协议还是JTAG协议,这个和使用的仿真器有关,比如STLink似乎就只支持SWD协议,但是我用的JLink支持两种协议,而且这两种协议对应的引脚也是一样的。
-
5. 方便查阅起见,这里也放两张引脚图。
其中,主要需要接的就是四根线:VCC,SWDIO(TMS),SWCLK(TCLK),GND(一般连20号引脚),注意缺口的位置就行。
-
6. 程序烧入完成之后要按下复位键才能运行? 这个是我之前遇到的一个问题,在网上找到一个教程,即①Boot0和Boot1都接地;②在仿真器的settings中设置“Reset and run”及取消勾选Pack标签页下的Enable选项,参考下面两张图。
-
7. 如何修复STLink或者自己自制一个STLink,在遇到前文提到的那个USB设备无法识别的问题之后,我当时有点不甘心,想着有没有什么方法可以复原它,在网上找了很多资料,这里简单总结一下,有兴趣的朋友可以按照教程试一下。
-
8. 使用JLink提示“the connected j-link is defective” 这个问题也是那天测试JLink时遇到的,这个问题在于Jlink固件和驱动不匹配,一般是固件版本低于驱动版本,因此解决这个问题也是两种方法:升级固件或者降低驱动等级。但是听说升级Jlink固件可能会造成不可逆的后果,而且操作也比较麻烦,所以一般是采用降低驱动等级的方法。参考这个教程可以下载到更低版本的驱动,然后替换掉Keil安装目录下(Keil_v5/ARM)的Segger文件夹即可。
??但是!需要注意!!! 在替换根目录下的文件夹时,一定一定一定要先备份,因为很有可能替换之后你的Keil就打不开了,或者是闪退,这样你就得重装一遍,非常麻烦!
??相比于自己一个一个版本去试,更方便的还是在网上下载那种已经确定可以用的文件夹,这里推荐一个资源。没有币的可以考虑一下某宝。