[STM32F4] STM32G0和STM32G4 如何把BOOT0当作通用GPIO使用--软件配置

[复制链接]
2809|14
 楼主| zxd121 发表于 2021-6-11 17:36 | 显示全部楼层 |阅读模式
在程序中对Option Byte选项字的相关位进行编程,设置BOOT0为软件BOOT0,
程序如下:
MyType mysymbol;
/* USER CODE END 0 */
FLASH_OBProgramInitTypeDef    OBInit;

int main(void)
{

  HAL_Init();

  /* USER CODE BEGIN Init */
   HAL_FLASH_Unlock();
         HAL_FLASH_OB_Unlock();
         HAL_FLASHEx_OBGetConfig(&OBInit);
         OBInit.OptionType = OPTIONBYTE_USER;
         OBInit.USERType   = OB_USER_nBOOT0;
         OBInit.USERConfig = OB_nBOOT0_SET;
         HAL_FLASHEx_OBProgram (&OBInit);
         OBInit.OptionType = OPTIONBYTE_USER;
         OBInit.USERType   = OB_USER_nSWBOOT0;
         OBInit.USERConfig = OB_BOOT0_FROM_OB;
         HAL_FLASHEx_OBProgram (&OBInit);
         HAL_FLASH_OB_Lock();
         HAL_FLASH_Lock();
        //这段代码的功能:重新定义BOOT0,BOOT0的数据不在从外部PIN获取,而是从内部nSWBOOT0+NBOOT0获取,当前定义,BOOT from Main Flash ;
  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
  EventRecorderInitialize(EventRecordAll,1U);
        EventRecorderStart();     //这段代码使能EVENTRECORDER ,可以使用没有SWO口的ST Link  做打印debug ;
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_TIM1_Init();

评论

支持一下!  发表于 2021-6-11 23:05
aeqw 发表于 2024-6-25 14:33 | 显示全部楼层
請教一下,如果連main都跑不到,還是只能從CUBEprogrammer去修改Option Byte了吧?
LOVEEVER 发表于 2024-6-25 19:09 | 显示全部楼层
把BOOT0当作通用GPIO使用需要确认boot0引脚的复用范围
Candic12e 发表于 2024-7-13 14:17 | 显示全部楼层
没必要把这种特殊接口作为通用io来操作吧
Betty996 发表于 2024-7-13 15:25 | 显示全部楼层
一般来说,都是不用boot0的,这个很有风险
Carina卡 发表于 2024-7-13 16:34 | 显示全部楼层
这种配置之后,会有啥风险吗?
Allison8859 发表于 2024-7-13 17:38 | 显示全部楼层
如果把boot0配置成普通IO之后,需要还原的话咋弄?
Charlotte夏 发表于 2024-7-13 19:44 | 显示全部楼层
要禁用启动模式选择功能,需要配置选项字节(Option Bytes)。这通常需要使用STM32的编程工具(如ST-Link Utility)来修改选项字节
Betty1299 发表于 2024-7-13 20:52 | 显示全部楼层
使用ST-Link或其他编程工具连接到STM32微控制器。在编程工具中,找到选项字节配置选项。将nBOOT0选项设置为1,这将禁用BOOT0引脚的启动模式选择功能
Emily999 发表于 2024-7-14 09:08 | 显示全部楼层
在启动代码或初始化代码中,将BOOT0引脚配置为通用输入或输出模式,并且还要改关键字
Carmen7 发表于 2024-7-14 10:11 | 显示全部楼层
确保在启动时不会使用BOOT0引脚来选择启动模式。可以通过配置选项字节(Option Bytes)来实现这一点
Belle1257 发表于 2024-7-14 11:05 | 显示全部楼层
正常就拉低就完事儿了,没必要占这个IO的
Annie556 发表于 2024-7-14 12:30 | 显示全部楼层
估计占用之后会不会出现程序失灵之后,用不了boot0并且也不能用ISP升级程序呢?
雨果喝水 发表于 2024-8-29 12:35 | 显示全部楼层
在进行选项字节编程之前,您需要解锁闪存和选项字节寄存器,以允许修改选项字节配置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部