前言: 本人目前在读研二,大学的时候学习了一些单片机的开发:89C51,AVR,stm32等,但当时只是囫囵吞枣的学习,留下了好多模糊的知识。如今在实验室做老师交给的项目,再一次用到了stm32。寻着大二期间学习stm32开发的模糊经验,现在被一点点的唤醒。但终究还是会遇到一些新的问题,因为某些环境的不同,软件的不同,型号的不同,甚至是原理的稍微改变;将导致新的问题。我发现:导致问题的原因千奇百怪,但是解决问题的方法都好像都似曾相识,这也许是称之为【经验】的感觉吧。
正文: 如何安装keil软件,无论是你买的stm32自带的资料还是从网上搜到的资料,都有一大顿讲述如何安装keil软件的方法。这里主要讲述的是:在安装好keil软件之后,如何把程序下载进芯片里。
第一种方式:通过【USB转串口】方式下载。连接好对应的端口,打开对应的串口下载软件,调好参数后下载就行。这些步骤在stm32自带的资料中有说明,不在累赘。 【遇到的问题】:程序烧不进去,检查了对应端口的连接,没有问题。到底是什么问题,一顿网上百度,试了很多方法,都没有下载进程序。 【解决】:首先看stm32开发板原理图,有些开发板把PA9(USART1_TX),PA10(USART1_RX)复用了,就是一个端口两种功能,可作用正常的使用,也可用作串口读写功能。有些开发板能够找到RXD和TXD端口,但是他们与PA9和PA10用跳线帽连接起来,用作其他功能了。一开始,我就看错了,以为RXD和TXD端口就是串口对应下载的端口(因为和串口上的RXD,TXD一样,交叉连接,应该能烧进去程序),但是却一直烧不进程序。后来就把【串口】的RXD,TXD引脚和开发板的对应【直接端口】PA9,PA10连接(如果你看到有其他的PA9和PA10端口存在,别连接!那是作为其他用处的),然后打开串口下载软件,调整好参数后,就可以下载进程序了。
第二种方式:使用DAP仿真器下载程序。连接好硬件电路之后,需要在keil软件里配置一些参数,这个stm32里的如何用仿真器下载程序一文中有讲。【遇到的问题】:在【debug】里一直检测不到仿真器的信息,硬件连接没问题。一开始,连接到电脑的USB端口后,是能够检测到仿真器的信息,再次插入,就检测不到仿真器的信息了,试了三四台电脑,都是这种情况。这是驱动没安装的问题。搜了好多的解决这个问题的方法:使用驱动精灵,驱动人生更新驱动,下载新的驱动;还写了驱动程序放在磁盘里,然后重新检测驱动;都不可行,就差重装系统了。 【解决】:按照下面这个方法就可以了。右键【此电脑】–>【管理】–>【设备管理器】,找到【linusb-win32 devices】,然后按照下面操作。