关于禁止ST芯片SWD引脚导致无法下载程序问题
今天在编写代码下载程序时遇到一个问题,用cubemx生成了一段工程代码无法下载到MCU,只能通过按住板子的复位按键不放,在keil中点击下载程序的同时,放开按键,才能正常下载。
原因:代码禁止了ST-LINK的SWD下载功能
这里对单片机的SWD引脚做一个说明:由于单片机引脚资源有限,大部分引脚都具有复用功能,这其中就包括程序烧写口。
其中,SWDIO和SWCLK引脚既可以普通IO口,也可以做程序烧写口。
如果我们在程序里不小心将SWD引脚禁止了,接着又将程序烧写进芯片,那么你下一次将面临仿真器识别不到芯片,无法烧写程序的后果。
/**DISABLE: JTAG-DP Disabled and SW-DP Disabled */
LL_GPIO_AF_DisableRemap_SWJ();
因为cubemx生成的代码默认是禁止了SWD功能的,而我直接复制代码,所以导致了这个问题。
解决办法
1、屏蔽掉相关复用代码;
2、每次都按住复位按键,再点击下载,利用boot启动时候,实现程序的下载功能。