|
void SetBORLevel()
{
FLASH_OBProgramInitTypeDef OBInit;
HAL_FLASHEx_OBGetConfig(&OBInit);
kprintf("\n----BORL=0x%04x,%d ", OBInit, OBInit.BORLevel);
#if 0
OBInit.BORLevel =OB_BOR_LEVEL0;
//HAL_FLASH_Unlock();
HAL_FLASH_OB_Unlock();
HAL_FLASHEx_OBProgram(&OBInit);
HAL_FLASH_OB_Launch();
HAL_FLASH_OB_Lock();
//HAL_FLASH_Lock();
#endif
HAL_FLASHEx_OBGetConfig(&OBInit);
kprintf("\n----BORL1=0x%04x,%d ", OBInit, OBInit.BORLevel);
}
============分割线============
以上是测试代码,硬件是STM32H750VBT6,第一次运行(#if 0), 读到的OBInit.BORLevel=3; 第二次运行(#if 1)使能写BORLevel代码;此后无论读还是写,串口打印都是:
----BORL=0x0056,604176128
----BORL1=0x0056,604176128
我的系统要求禁止BORLevel或者设为最低档的Level0,但我无论如何操作都不成功,不知道哪里出问题了,请教,多谢!!!
不是说芯片出厂就是Level0=0x00 (表示1.7V), 此前也没操作过,第一次读出来居然是=3(表示2.7V)??
多谢!!!
多谢!
|
|