前提条件是使用JLINK的4线SWD模式(VCC,SWDIO,SWCLK,GND),不要连RESET
这个功能在STM32F103VE和STM32F103RC上面测试是有这样的问题,然而在STM32F103C8上面却安然无恙,不知道有人遇到过没
可以使用以下方式证实:
1.然后使用CUBEMX新建一个工程,SYS选择Serial Wire,IDE选择MDK,固件库选择Copy Only Necessary library files,其他不用选择,也不用写任何代码,直接生成工程
2.为了证实SWD功能能正常使用,烧录完后断开JLINK和单片机的连接,单片机断电重新上电,然后再次烧录,是能正常烧录的,说明生成的工程没有禁用SWD
3.然后在main.c的while(1)之前添加__HAL_AFIO_REMAP_I2C1_ENABLE(),再次烧录程序
4.烧录完成后,断开JLINK和单片机的连接,然后单片机断电重新上电,然后再次烧录,MDK烧录就失败了
5.在__HAL_AFIO_REMAP_I2C1_ENABLE()下方加上__HAL_AFIO_REMAP_SWJ_NOJTAG(),将RESET接到JLINK或BOOT0拉高,烧录程序,断开JLINK,单片机断电后重新上电,再次烧录,结果就成功了
|