首先从官网下载stlink utility。
然后打开软件进入正式的配置步骤,注意我们这里只配置烧录hex文件,要是烧录bin文件不行。要是烧录hex那么address和size随便填,也可以不填为空都行,不过为了我们后面好配置这里我们将size设为0x1000,这个设置单纯就是为了能让我们看到stlink utility读到的单片机flash中的内容。
具体配置步骤:
1、确保电脑、stlink和单片机接好线。点击target下的connect,如果能正常连接则右上角会读取出单片机的设备信息以及flash中的内容,在这一步基本都不会有问题,如果这一步有问题应该是接线没接好,相关图如下,由于每个人单片机中flash的程序不同所以读到的flash内容和我的会不一样。
2、接下来进入非常重要的环节了,点击target下的optionbytes进行配置,大多数能读取到信息但是写数据失效就是这一步的问题。在名为option bytes的弹框的下面有一个叫flash sectors protection的表,要确保这个表没有选择任何page,如果有page选中则表示当前单片机的这个page被写保护了,也就是说你不能把数据写入到当前page,所以我们需要取消勾选所有的page,点击unselect all即可,然后点击apply,如果改成功了就配好了这一步。如果点击apply后没有改成功则点击target下的connect然后复位几下单片机再设置一下应该就可以了,如果还不行在多重复几次。
3、接下来我们开始烧录程序了,点击target下的automatic mode,安如下图配置即可。记得勾选run application,勾选了它烧录完毕点击stop烧录的程序就会自动运行。如果不勾选它我们需要在stop之后再点击target下的disconnect程序才会运行,所以为了方便起见我们勾选run application。
4、不出意外经过以上三步就可以正常烧录程序了。如果意外发生了,你发现你的单片机没有按你的想法运行,你怀疑没有正确的烧录进程序,那么你可以这样来印证自己的想法,点击target下的erase chip就是清空芯片程序的意思,然后connect一下看看读出来的flash数据是否都是ffffffff,如果是的话说明我们清空了芯片,然后再烧录一下程序,再connect一下,如果读出的flash数据还是一堆ffff那么说明我们的程序并没有烧录进去,这一般是步骤2没有成功,你可以再安步骤2配置一下。