我是一名大学生,因为对硬件的热爱,开始了不归路。在这里发现好多大佬的优秀设计,我也学到了很多。我很喜欢失败后反复尝试直到成功的那种喜悦心情。看到自己的作品帮到别人,自己更是欣慰满满!下面是我做stlink的克服困难,直到成功的例子。
1.最开始我手上有原子的pandora板子和nano板(学校的,马上就还了),还了就没了,所以准备买个c8t6小蓝板,那还不如自己做一个板子。另外由于我对flymcu功能的不满,准备买一个stlink,那还不如自己也做一个stlink。
2.这个时候我只有V2J28的bin固件(官方的)和从Pandora上提取的V2J24固件,只焊接了一个小蓝板和stlink扩展板,而且焊之前,我并不知道两个的flash是多大的,但不幸地是,完成第一个焊接的那个芯片用软件测出来flash是64k的(虽然这个我测试了后面64k也是能用的,但是软件就是显示64k),然后我就用nano板载stlink刷了V2J28的固件进去。准备用这个做好的stlink读Pandora板子的stlink固件,发现stlinkUtility软件能检测到stlink是V2J28版本,但是一读程序就断连,还得重新拔插USB才是再次识别,但是一读程序就断连,而且stlinkUtility自带的stlink升级器无法升级。所以我以为是硬件电路的问题,在排除原理图问题之后,才意识到是64kflash的问题。于是我刷了从Pandora上提取的V2J24固件,问题还是和上面一样,后面验证了这个固件是绑定了Pandora板载stlink的c8t6的硬件信息的。
3.与此同时,发现自己做的stlink插到电脑上,没有windows弹窗,但是打开STM32CubeProgrammer软件(ST官方的烧录软件)就有弹窗,只不过问题还是和上面一样。所以打算用STM32CubeProgrammer在试试刷一下V2J28的固件,由于nano板载的stlink固件版本低,然后手残点了升级,把nano板载的stlink固件升级了。结果nano板载的stlink不能被keil检测到了,也不能给stm32F103RBT6下载程序了,但是打开STM32CubeProgrammer软件,弹出windows弹窗,keil就又能识别了,不过还是不能下载程序,这现象和我自己做的stlink一摸一样呀。这个nano板载的stlink被我升级成了砖。
4.最后是自己的stlink没做成,赔了一个好的板载stlink,而且这个nano板子还得还给老师,良心难安。
5.这就是折腾的后果,真的是试试就逝世。那天心情真的是太失落了。第二天弄了弄还是老样子。心凉了个透。第一次做东西就遇见如此大坑!
6.**抱着不放弃的心态,决定最后再拯救一下。**
7.后来我发现nano板子上的这个stm32F103RBT6不执行程序,之前一直插拔接口,不会芯片被烧坏了吧,既然板载stlink不能下载程序,那我就flymcu用USB转TTL采用串口下载,发现芯片被写保护了,解除写保护之后就能用flymcu下了。
8.但是,目前nano板载stlink还是个砖,不能使用。还好找到了旧版本的 ST-Link 升级器。打开STM32CubeProgrammer软件,弹出弹窗。打开ST-LinkUpgrade_V2.J27.M15.exe(旧版本的 ST-Link 升级器),点击 Device Connect 后,再点击 Yes 即可。这个时候发现keil和stlinkUtility都能下载程序了,而且不用打开STM32CubeProgrammer软件,插上nano板子就有弹窗,下载调试都好了。
到此,nona板子算是弄好了,这样就能还给老师了。
9.不对呀,我自己的stlink还没做成呢,既然找到了旧版本的stlink升级器,那这不就是64kflash的c8t6的福音,果断插上我的小蓝板(有V2J28固件),打开STM32CubeProgrammer软件,弹出弹窗,打开旧版本的 ST-Link 升级器,点击 Device Connect 后,再点击 Yes ,刷回V2J27。刚好第二块板子也焊好了,用自己做的stlink下载调试我的第二个小蓝板,一切顺利。成功。
10.最后用nano的板载stlink把小蓝板的V2J27固件提取出来,幸运地是,可以提取出来(bin和hex),然后再反复刷到我的两个小蓝板里,都能用。
11.**那天我是十分开心,这就是费劲做出来东西的激动吧,如果没有坑,可能做出来也不会如此的高兴。这应该就是做硬件的魅力吧!!!以后继续加油!!!**
12.**最后感谢立创EDA,感谢开源平台。开源平台三周年快乐,祝你们越来越好!!!**~~~~