FlyMCU烧录的问题(写入出错在0KB,进度100%,耗时1172毫秒) 最终通过STM32CubeProgrammer烧录成功(F446RCT6芯片)

张开发
2026/4/16 3:33:48 15 分钟阅读

分享文章

FlyMCU烧录的问题(写入出错在0KB,进度100%,耗时1172毫秒) 最终通过STM32CubeProgrammer烧录成功(F446RCT6芯片)
FlyMCU烧录出错的问题报错信息如下开始连接...12, 接收到:00 E0 00 开始连接...25, 接收到:00 E0 00 00 00 1F 1F 在串口COM3连接成功57600bps耗时4657毫秒 芯片内BootLoader版本号3.1 芯片PID00000421 芯片已设置读保护 芯片有读保护请先擦除器件以清除读保护 开始去除读保护(全片擦除时间会比较长请耐心等候!) 去除读保护并擦除成功 开始连接...7, 接收到:00 1F 1F 在串口COM3连接成功57600bps耗时1078毫秒 芯片内BootLoader版本号3.1 芯片PID00000421 芯片已设置读保护 第1140毫秒已准备好 开始编程芯片共需写入30KB,耗时1140毫秒 写入出错在0KB,进度100%,耗时1172毫秒总是会在写入程序的时候出错提示写入出错在0KB,进度100%,耗时1172毫秒这样的信息不知道为什么总是会这样偶尔会正常但是大多数情况会出问题。。。使用STM32 STLink Utility软件擦除掉芯片后再使用FlyMCU烧录就会正常但是没过多久就可能又烧不进去了。 我的芯片是STM32F446RCT6。我现在怀疑是芯片的问题等新的芯片到了之后再看看会不会还有同样的问题。。。下面是我的电路设计图我是没有使用CH340的RTS和DTR引脚的直接用两个按键控制MCU的RST和BOOT0的。CH340电路BOOT0控制复位按键现在又好了下载好几次又都正常了真没招了硬件就是这样你不知道它为什么出问题也不知道它为什么又没问题了。。。补充一下这个电路的下载流程因为复位和BOOT0都是通过按键控制的所以在FlyMCU中就不用DTR和RTS引脚控制然后点击开始编程此时软件会等待MCU的BootLoader的回复信息此时需要我们先按下BOOT0的控制引脚拉高BOOT0然后按下复位按钮进入BootLoader程序注意此时不要松开Boot0的按钮等看到下面的进度条之后就可以松开了然后就能在软件上看到下载成功了。芯片默认是Boot0和Boot1都是接地的此时从Flash启动程序软件下载FlyMCU和STM32 STLink Utility软件可以去官网下载推荐使用STM32CubeProgrammer。后续发现使用STM32CubeProgrammer串口连接同样一直提示读保护被开启问题是我明明没有开启过读保护就算使用STM32STLink utility工具设置和擦除芯片内容后依旧会提示读保护。。。没招了 要想继续使用串口下载就只能换芯片了解决办法在重新打板之后倒腾了一会发现了解决方法方法如下首先必须选择STM32CubeProgrammer烧录软件同时使用串口下载时必须勾选Read Unprotect(MCU)选项勾选完后将BOOT0使用跳线帽选择高电平选择UART刷新下面的串口然后点击Connect进行连接然后立即按下复位按钮此时软件会出现两个错误弹窗不用管可以看到右上角显示现在已经连接上了此时就可以进行烧录了。如果按照上面的操作始终提示错误信息连接不上首先检查下列内容串口是否被占用BOOT0引脚是否拉高软件右上角连接方式是否选择UART并勾选了下面的Read Unprotect(MCU)如果上面的步骤都是正确的那么你就把STM32CubeProgrammer软件关闭然后重新打开再次按照上面的流程设置一下然后点击Connect并按下复位按钮正常情况下即可连接成功更新当我再次拿出来进行测试的时候发现又不行了即使按照上面的流程也连接不上软件还是同样的问题。。。服了再后续分析博主使用的STM32F446RCT6的芯片经过多次改版后才发现了上面的解决办法博主使用STM32F103C8T6芯片通过FlyMCU以及STM32CubeProgrammer软件进行串口下载都是完全正常没问题的但是对于F446这个芯片就出现了上面所说的一系列问题换了新的芯片也是有问题因此猜测可能与该款芯片有部分关系。同时上述的解决办法是博主在将电路设计进行优化后的结果优化之前的板子是无论如何也连接不上的因此可能也与电路设计有关。但是正常情况下应该是直接就可以连接的所以对于这款F446芯片我是觉得多少有点问题。最终找到的解决方法带着怀疑的心态我换了一个CH340芯片将原来的CH340C换成了CH340N然后重新打板发现换成CH340N芯片之后通过FlyMCU以及STM32 Cube Programmer都能正常使用串口烧录了只不过FlyMCU烧录偶尔可能会失败这应该是正常的没想到居然跟串口芯片有关找了很久很久很久的问题终于解决了烧录成功的界面如下图所示FlyMCU烧录成功STM32 Cube Programmer连接成功截图不需要勾选任何选项只需要将BOOT0拉高甚至不需要按复位按键感觉还是STM32 Cube Programmer更方便如果连不上可以拔一下你的线再插上然后重新Connect就能连上了另外如果你的程序用到了USART1那么建议不要勾选Run after programming(编程后执行)选项STM32 Cube Programmer烧录成功截图总结本文分析总结了在对STM32F446RCT6芯片使用串口下载过程中遇到的各种问题并给出了最终的解决办法。最终的解决方法就是将CH340C芯片更换为CH340N芯片避免了下载失败、STM32CubeProgrammer软件连接不上等问题。

更多文章