STM32F030 和 BOOT0 引脚

Posted

技术标签:

【中文标题】STM32F030 和 BOOT0 引脚【英文标题】:STM32F030 and BOOT0 pin 【发布时间】:2014-04-16 14:21:33 【问题描述】:

我正在尝试使用 STM32F030K6T6 微控制器创建电路,但我不确定一件事。

只有 BOOT0 引脚(没有 BOOT1),也许我是盲人,但我在 ST 文档中找不到有关此引脚的描述(我正在查看“DoclD024849 Rev 1”文档,该文档是提到的 uC 的数据表)。

我找到了关于一对 BOOT 引脚的描述,如下所示(基于“DoclD018940 Rev 5”-RM0091 参考手册文档):

BOOT0=0 BOOT1=x - 主闪存启动 BOOT0=1 BOOT1=0 - 系统内存引导(引导加载程序) BOOT0=1 BOOT1=1 - RAM 内存

我想做的是通过 SWD 对芯片进行编程,但我不确定我需要用 BOOT0 引脚做什么。

问题是:我应该拉起这个引脚吗?这种情况下BOOT1的默认值是多少?

【问题讨论】:

【参考方案1】:

在STM32F030 datasheet你可以发现BOOT0是微控制器引脚,BOOT1是引导选择器选项位(第12页)

在第 62 页的RM0360 中,您可以在 FLASH_OBR 寄存器中找到该位。还有关于如何设置引导配置的部分。

在 STM32F0x0 中,可以通过 BOOT0 引脚和 用户选项字节中的启动配置位nBOOT1,如下表所示。

(...)

启动模式配置在复位后的 SYSCLK 的第 4 个上升沿锁存。它是 由用户设置与所需引导模式相关的引导模式配置。 退出待机模式时也会重新采样引导模式配置。

【讨论】:

请注意:我认为 Gaskoin 的意思是链接 STM32F030 Reference Manual;上面链接中的一个适用于 STM32F031/STM32F051/STM32F071。 答案中的第二个链接已失效。 @poofjunior 一样。 警告词:就我而言,STM32F030cc 真值表似乎是错误的。它指出,如果 BOOT0 接地(引脚),则 BOOT1(选项位)无关紧要(x = 不关心),但我发现情况并非如此。 BOOT1=1 引导至系统内存,BOOT1=0 引导至主闪存。【参考方案2】:

简单的答案:在启动期间不需要连接 SWD,因此启动引脚配置对此无关紧要(除非您想防止执行某些“危险”软件)。如果您打算将 SW 写入主闪存,我建议您保留 BOOT0 以节省麻烦。

如果您想使用串行 (UART1) 闪存芯片,则需要为此调用引导加载程序 (BOOT0=1 BOOT1=0)。

【讨论】:

以上是关于STM32F030 和 BOOT0 引脚的主要内容,如果未能解决你的问题,请参考以下文章

STM32F030如何正确配置IO口的复用功能

STM32F030系列实现仿位带操作

STM32F030系列实现仿位带操作

刚看到stm32f030的消息,stm8s还有意义吗

求教stm32f030 HAL库,怎么关闭和打开所有中断

开源硬件STM32F030R8T6系统板