STM32 的 选项字节(Option Bytes) 是芯片内部一组特殊的配置寄存器,用于设置芯片的硬件特性、安全保护、启动模式等关键参数。以下是关于选项字节的详细说明和常见操作:
选项字节的作用
-
读写保护(RDP)
- 防止外部工具读取或修改 Flash 中的程序(读保护等级 0/1/2)。
- 等级 1 启用保护,等级 0 关闭保护,等级 2 为永久保护(不可逆)。
-
看门狗(WWDG/SWWDG)
- 配置硬件窗口看门狗是否在芯片复位后自动启用。
-
启动模式(Boot Configuration)
- 设置芯片启动时的存储器来源(如 Flash、系统存储器、RAM 等)。
-
其他配置
- 电压监测、复位引脚功能、Flash 等待周期等。
常用工具修改选项字节
-
STM32CubeProgrammer
- 官方工具,支持图形化操作:连接芯片后进入 Option Bytes 标签页修改配置,点击 Apply 生效。
-
ST-Link Utility
- 旧版工具,功能类似:通过 Target > Option Bytes 菜单修改。
-
Keil/IAR
- 在调试环境中通过插件或脚本修改选项字节。
-
命令行工具
- 使用
STM32_Programmer_CLI命令行工具,例如:STM32_Programmer_CLI -c port=SWD -ob RDP=0xCC # 关闭读保护
- 使用
注意事项
-
风险提示
- 错误配置可能导致芯片锁死(如误设 RDP 等级 2)或无法启动,操作前务必确认参数。
-
解除读保护
- 若 RDP 等级 1 已启用,解除保护会触发全片 Flash 擦除。
-
参考手册
- 不同型号 STM32 的选项字节地址和定义可能不同,需查阅对应型号的 Reference Manual(如 RM0008、RM0433 等)。
代码中修改选项字节(示例)
#include "stm32f1xx_hal.h"
void Configure_OptionBytes() {
HAL_FLASH_Unlock(); // 解锁 Flash
HAL_FLASH_OB_Unlock(); // 解锁选项字节
// 设置读保护等级为 0(关闭保护)
FLASH_OBProgramInitTypeDef obConfig;
obConfig.OptionType = OPTIONBYTE_RDP;
obConfig.RDPLevel = OB_RDP_LEVEL_0;
HAL_FLASHEx_OBProgram(&obConfig);
HAL_FLASH_OB_Launch(); // 生效配置(触发系统复位)
HAL_FLASH_Lock(); // 重新上锁
}
遇到具体问题时,建议结合芯片型号、调试工具和错误现象进一步分析!
设置STM8单片机选项字的方法
STM8单片机在使用的时候有个问题比较麻烦,就是如果要使用某些引脚的第二功能时需要设置选项字,设置选项字可以通过代码设置。但是代码设置的时候比较麻烦,需要计算选项字相关寄存器要设置的值,如果设置值
fgfFsG
2022-01-27 08:10:32
STM32F103RCT6 一款STM32位微控制器MCU(ST意法)
2023-11-28 15:46:59
STM32WB+选项字节如何设置?
对于 stm32wb 闪存操作,我们必须实现 AN5289,第 36 页中描述的图表。选项字节访问如何?我们是否应用了相同的方法,信号量等?或者我们只能使用常规的 HAL 函数?
wang21cj
2023-02-09 08:10:42
STM32字符串打印 精选资料分享
STM32字符串打印cks32C8T6、stm32c8t6直接复制使用文章目录STM32字符串打印源码xxx.c头文件定义xxx.h举例源码xxx.cvoid UART_PutChar
werywer
2021-08-24 06:06:13
刚开始学stm8,怎么设置的将STVD里面的下载器的选项字设置成了读保护
刚开始学stm8,不知道怎么设置的将STVD里面的下载器的选项字设置成了读保护,后面每次给stm8芯片烧写程序就显示Error : The device is protected,Operation
60user111
2020-05-20 11:08:25
STM32CubeIDE Ver1.6.0如何添加图像编译选项?
环境:STM32CubeIDE Ver1.6.0谢谢你的帮忙。如何添加图像编译选项?
klysa
2023-01-05 07:42:37
最新的clion 2019是否有stm32cubeMX选项?
过SW4STM32和TrueStudio等,但是用eclipse改的软件,总是喜欢不起来.安装了最新的clion 2019之后,突然发现新建工程时竟然有stm32cubeMX的选项!!! 哇噻噻!!...
wrfqwerty
2021-11-08 07:36:15
STM32U5:Makefile选项变灰是为什么?
我正在尝试为适用于 Linux 的 STM32CubeMX 6.5.0 上的 B-U585I-IOT02A 开发板生成 Makefile,Makefile 选项位于:项目经理 -> 项目设置 -> 工具链/IDE,该选项显示为灰色。为什么它被禁用?缺少此功能吗?
60user103
2022-12-12 06:16:53
如何开发与位置无关的 STM32 完整工程
最近有客户询问,能否使用 STM32CubeIDE 在编译时通过设置某个编译选项,让STM32 应用与存储位置无关。
2022-09-15 09:59:23
STM32例程能否与MFC网络套接字通信?
如题。。想自己写一个PC上的MFC界面。不要求太高的实时性和过大过高的传输数据量,偶尔一次传输几十字节即可,不知道STM32例程能否与MFC网络套接字通信。如果可以就入手一套了,另外,例程是裸奔还是在操作系统上跑
蒋jiang
2019-08-02 04:36:40
STM32 HAL库串口是如何实现发送16字节数据的
STM32 HAL库串口是如何实现发送16字节数据的?STM32 HAL库串口是如何实现发送32字节数据的?
kiifwerw
2021-12-02 07:58:01
选项字节中的用户字节地址问题求解
的内存。所以我使用选项字节将一些值保存在内存中,stm32f0 mcu.2 字节只需要存储。我想对这个 stm32g0 mcu 做同样的事情。但是我在选项字节中找不到用户选项 byes。我找到了选项字节
gft2gf2
2022-12-26 06:18:09
STM32MP1部件号具有像STM32MP157C/F这样的安全引导选项吗?
是否可以使用 OTP WORD 24 到 31 而不启用安全引导,STM32MP1 部件号没有像 STM32MP157A/D 这样的安全引导选项?与上述相同,但 STM32MP1 部件号具有像 STM32MP157C/F 这样的安全引导选项?
颜刚YanG
2022-12-27 08:56:31
求助,如何恢复STM32h745I-Disco选项字节
我在玩我的 STM32h745I-Disco,并做了一些关于从 CM7 启动和停止 CM4 的测试。但是我不小心弄乱了我的选项字节。我用 CubeProgrammer 禁用了 BCM7 和 BCM4,现在芯片不再启动了。但我也无法连接到嵌入式 ST-Link 来恢复选项字节。
djfldsthtr
2023-02-07 06:05:10
stm32加密方法
.STM32Flash组织STM32的Flash包括主存储器(HD版本,512KB)+信息块。信息块包括2KB的系统存储器(用于系统自举启动代码)和16字节的选项字节(8个...
1123127317
2021-08-09 06:48:21
STM32F302xB,STM32F302xC数据手册
16位字节。 CRC计算单元 重置和供应管理 断电/下电复位(POR/PDR) 可编程电压检测器 低功耗模式:睡眠、停止和待机 时钟管理 4~32 MHz晶体振荡器 32 kHz RTC振荡器的校准 内部8兆赫rc与x16锁相环选项 内40 kHz振荡器
普罗旺斯的薰衣草
2022-11-28 06:26:48
STM32F429NIH6 一款STM32位控制MCU
2023-09-21 10:51:59
STM32F103RET6 一款STM微控制器MCU(ST意法)
2023-11-28 15:38:56
STM32 MCU通过STM32CubeMx配置NVIC怎么没有中断子优先级选项
有些STM32用户,尤其是那些用过基于ARM Cortx-M3/M4/M7内核的STM32 MCU的用户,在使用基于M0/M0+内核的STM32系列并通过STM32CubeMx进行NVIC配置
2023-09-09 09:25:32
如何在STM32L5上访问用于用户配置的选项字节闪存页面呢?
STM32L5 参考手册指出,可通过闪存寄存器接口(第 6.3.1 节)访问“用于用户配置的 4 KB 选项字节”,但没有提供有关如何访问该空间用于用户数据存储的更多详细信息。我在这里发现了一个
IC大当家ac
2022-12-22 07:17:29
如何修改在STM32CubeIde 1.8中的C编译器选项呢?
我使用 STM32CubeIde 1.8。我放了停止点,调试器没有考虑到它们。我假设选择 C 编译器选项是为了在繁忙的内存和执行速度级别优化代码。有了这些选项就没有考虑到要点了。如何修改这些选项?
kmno4
2022-12-12 07:52:35
STM32CubeProgrammer IWGDSTDBY选项字节中的拼写错误怎么解决?
你好,我使用的是 STM32WB55REV,选项字节“IWGDSTDBY”而不是“IWDGSTDBY”中有错字。STM32CubeProgrammer v2.10.0
h1654155143.8331
2022-12-27 07:39:29
STM32F103RCT6
2024-04-30 10:43:57
STM32-PRIMER
STM32-PRIMER - Raisonance STM32 Primers for fun, easy evaluation and development with STM32 - STMicroelectronics
2022-11-04 17:22:44
Graphical Editing选项卡的设置
Graphical Editing选项卡包含原理图图形设计的相关信息。如图2-25所示,进入Graphical Editing选项卡的设置界面,对以下4个选项进行推荐设置,其他采取默认设置即可。
2022-09-30 09:05:37