使用另一个微控制器对 STM32 进行编程的选项

Posted

技术标签:

【中文标题】使用另一个微控制器对 STM32 进行编程的选项【英文标题】:Options on programing STM32 with another microcontroller 【发布时间】:2021-09-11 07:52:39 【问题描述】:

在我的项目中,我将使用 STM32f103 作为主微控制器,使用 ESP8266 作为 Wi-Fi 模块。这两个芯片通过UART相互联系。

我有一个包含“version2.bin”文件的服务器。我可以用 ESP8266 下载这个文件,但是我应该如何用这个文件更新 STM32 固件呢?

也就是说,如何进行OTA?

【问题讨论】:

对于 STM32,我使用的是 Keil IDE,对于 ESP8266,我使用的是 Arduino。我在这个项目中没有任何 SD 卡,并且出于价格考虑,我不允许拥有一个,所以我正在寻找另一种选择。我认为 ESP12-F 有足够的内存来解决这个问题。 【参考方案1】:

STM32F1 有一个嵌入式引导加载程序,您可以通过 uart 使用。详情在这里:AN2606 和这里AN3155

您可以自己制作:对闪存进行分区并为引导加载程序保存一份,为应用程序保存一份。前者应该检查一些信号来更新后者。之后引导加载程序应该跳转到应用程序。

理论上您也可以使用调试器协议进行编程,但从未见过它完成,我想这样做简直太疯狂了。

【讨论】:

以上是关于使用另一个微控制器对 STM32 进行编程的选项的主要内容,如果未能解决你的问题,请参考以下文章

初识STM32

问题编程和运行STM32F103C8

将 VL53L0X 与 STM32 微控制器一起使用

STM32F103 闪存保护部分

如何在 STM32 微控制器上的两个程序之间共享单段闪存

STM32野火教程学习笔记