I am trying to write code to set the BOR Level under program control but cannot get the result I need. I have the following:
if ((FLASH_GetUserOptionByte() & 0x0F) != OB_BOR_LEVEL4)
FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_WRPERR |
FLASH_FLAG_PGAERR | FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR);
If I have a current BOR level 3, it remains at level 3. The attempt to write level 4 fails. I am using IAR and single step. I see the bits reset in the PECR register, and the attempt to write OBR register with level 4, but it does not update with the correct value.
What am I doing wrong in the code?