在使用STM32的时候,偶尔会遇到无法正常下载程序的的现象
在使用STM32的时候,偶尔会遇到无法正常下载程序的的现象,可以通过下面几个方面来排查问题
1,首先确认下载器STLink或者JLink能够正常工作,通过电脑设备管理器如果能看到对应下载器的驱动安装正常,基本能够排除下载器的问题。
2、确认电路板下载接口没有问题。通过测量下载接口JTAG/SWD电压可以确认下载口是否工作正常。
通过STM32F103的参考手册,可以看到JTAG的几个下载接口的电平
相应的SWD接口:
3、如果确认了下载器和电路板下载接口都没有问题,接下来排除软件设置方面的问题
1)是否进入了休眠模式后把下载接口关闭了?
在调试STM32低功耗功能的时候可能会遇到进入休眠模式,比如STOP后就无法下载程序了。这个时候如果程序中有对应的唤醒方式,比如按键唤醒,可以先唤醒 STM32退出STOP休眠再下载;如果没有唤醒方法,可以尝试上电的瞬间下载程序,如果有复位按键可以按着复位按键,松开后的同时下载程序。
在调试休眠模式的时候尽量在进入休眠模式前添加足够的延时或者设置合适的唤醒模式。
2)STM32进入加密模式?
有的时候为了安全或者产品出厂的时候会进行对STM32内核加密,一旦加密后再使用下载器下载或者读取程序都会出错,这个时候需要先解锁再对STM32进行下载操作,比较简单的解锁方式是使用Jflash的解锁功能,对应的Jflash也有加密功能。
3、如果使用STM32cubeMX生成代码,也会遇到一种常见的无法下载的问题。
在使用STM32cubeMX生成的代码下载程序的时候,第一次可以下载,而后再次下载就会提示失败,这个时候很大的可能是在配置程序中关闭了下载功能,
正确是的应该选择下载功能
4、除了上面几种常见了,可能还会存在其他的情况下无法下载程序,总体的解决问题的思路是先从下载器-->下载接口-->软件程序 这个流程