我有一台STM32F103,我通过 UART端口(使用启动加载程序)使用不同的MCU远程重新闪存。它工作得非常好,我有多个设备已经使用正确的代码成功闪存。但偶尔会出现一个已停止工作的设备,因为STM32代码闪烁不正确。整个bin文件使用另一个MCU闪存,但是STM得到了“砖块化”#34; (不完全是砖砌的,它只是有错误的代码)。当我使用我的电脑重新刷新设备时,一切都恢复正常。为什么十六进制写入STM会失败?
简介:
*使用UART引导加载程序刷新STM32F103
*偶尔此方法失败,因此STM停止工作。
*是否有方法检查写入代码空间的数据是否有效?
* STM没有砖块,它的 只是闪存中的错误代码 。当我从代码空间读回闪存时,它比应该闪存的文件小。
*我在系统启动模式下使用STM。 [AN2606]
答案 0 :(得分:0)
您可以使用boot-loader命令读取在STM32闪存中写入的数据,就像将数据(bin文件)写入闪存一样。这样,您可以检查写入闪存的数据(或新代码)是否与原始二进制文件相同。只有当这两个匹配时重新闪烁才会成功,否则您可以重新尝试闪烁STM32。