qqatscau-366093 发表于 2019-2-12 10:18:05

option byte问题求助

我要使用Hardware independent watchdog,所以要将user option byte中的WDG_SW位置0,代码如下:

FLASH_OBProgramInitTypeDef option;

__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR | FLASH_FLAG_OPERR);
HAL_FLASHEx_OBGetConfig(&option);
if ((option.USERConfig & OB_IWDG_SW) == OB_IWDG_SW)
{
HAL_FLASH_OB_Unlock();
option.USERConfig &= (~OB_IWDG_SW);
option.OptionType = OPTIONBYTE_USER;
if (HAL_FLASHEx_OBProgram(&option) != HAL_OK)
Debug("\nfail 1");
if (HAL_FLASH_OB_Launch() != HAL_OK)
Debug("\nfail 2\n");
else
Debug("\nok\n");
HAL_FLASH_OB_Lock();   
}


以上代码在STM32F401RC上使用正常,但在STM32F429ZG上不起作用了,没有报错,改写option byte后在不断电不复位的情况下再次读取option byte确认是我写入的值,但复位后又变成默认值了。
哪里出错了?



cruelfox 发表于 2019-2-13 10:48:58

直接用ST-Link utility改写不是更方便吗?

qqatscau-366093 发表于 2019-2-14 16:15:05

cruelfox 发表于 2019-2-13 10:48
直接用ST-Link utility改写不是更方便吗?

涉及到生产烧写代码的问题,最好还是在程序里实现。
页: [1]
查看完整版本: option byte问题求助