打印
[STM32F4]

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

[复制链接]
823|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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();

使用特权

评论回复
评论
xyz549040622 2021-6-11 23:05 回复TA
支持一下! 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

1

粉丝