当你拿到项目的线路板,打开电脑,噼里啪啦一阵子,撸了一段代码出来,往单片机里 面一下载,纳尼?突然发现烧录器掉线了,怎么整都连接不上了,这个时候整个人心情都不好了,别慌,恢复心情,你需要用到下面这个高端大气上档次的技术,首先说明一下我们本次文章参考芯片以 SMT32F103C8T6 来做说明,其他芯片同理,话不多说,我们开整 首先我来简单阐述一下这种方法的原理,这种方法是利用了STM32单片机的“自举BOOT 模式” 首先使单片机处于系统 BOOT 模式,也就是让单片机启动的时候从 System memory 启动 然后在 PC 机操作上位机软件通过串口发送控制命令擦除芯片中存储的程序 1.首先我们要知道第一个信息,有的单片机有很多个串口,那到底是从哪一个串口来发 送这个命令呢? 我们从数据手册的“存储器和总线架构”章节(2.4 启动配置小节)获取如 下信息 可以得出可以使用 USART1 接口启动自举程序。具体要发送什么命令,可以参考 AN2606 手册 我已经通过这个手册提炼出指令信息,编写成一个上位机小工具 ![]() 2. 那么如何进入系统自举模式呢?从下图画红线处可以得出信息,想要进入系统自举 模式 需配置 BOOT0 引脚为 1(高电平),BOOT1 引脚为 0(低电平),然后复位单片机 那 么在 SYSCLK 的第 4 个时钟上升沿会锁定 BOOT 引脚状态,并选择启动模式为系统存储器, 即系统自举模式 ![]() 3. 接下来我们看看接线图,我画出了简单的示意图如下,各位看官,请结合下图看具 体操作方法: ![]() 1).把 USB 转换工具按照图示方法连接(注意全过程不需要使用烧录器,且此步操作后 目标板已经带电 如果目标板 3.3V 功耗很大,需要给目标板用外部电源供电) 2).在设备管理器中查看此转换工具对应的串口号(注意如果没有识别到串口,需要安 装驱动。) 识别到的结果如下图 4 所示: 3).设置 BOOT0 引脚为高电平,BOOT1 引脚为低电平(如果有的 MCU 没有 BOOT1 引脚 可以忽略) 并复位单片机(可以通过单片机复位引脚来复位单片机),使单片机处于自举 BOOT 模式 ![]() |