STM32F4 Standard Peripheral bibliotheek  1.0
ST Microelectronics bibliotheek documentatie voor de STM32F4 Standard Peripheral Library
 All Data Structures Files Functions Variables Enumerations Enumerator Groups
Option Bytes Programming functions

Option Bytes Programming functions. More...

Functions

void FLASH_OB_Unlock (void)
 Unlocks the FLASH Option Control Registers access. More...
 
void FLASH_OB_Lock (void)
 Locks the FLASH Option Control Registers access. More...
 
void FLASH_OB_WRPConfig (uint32_t OB_WRP, FunctionalState NewState)
 Enables or disables the write protection of the desired sectors. More...
 
void FLASH_OB_RDPConfig (uint8_t OB_RDP)
 Sets the read protection level. More...
 
void FLASH_OB_UserConfig (uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY)
 Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY. More...
 
void FLASH_OB_BORConfig (uint8_t OB_BOR)
 Sets the BOR Level. More...
 
FLASH_Status FLASH_OB_Launch (void)
 Launch the option byte loading. More...
 
uint8_t FLASH_OB_GetUser (void)
 Returns the FLASH User Option Bytes values. More...
 
uint16_t FLASH_OB_GetWRP (void)
 Returns the FLASH Write Protection Option Bytes value. More...
 
FlagStatus FLASH_OB_GetRDP (void)
 Returns the FLASH Read Protection level. More...
 
uint8_t FLASH_OB_GetBOR (void)
 Returns the FLASH BOR level. More...
 

Detailed Description

Option Bytes Programming functions.

 ===============================================================================
                        Option Bytes Programming functions
 ===============================================================================  
 
   This group includes the following functions:
   - void FLASH_OB_Unlock(void)
   - void FLASH_OB_Lock(void)
   - void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState NewState)
   - void FLASH_OB_RDPConfig(uint8_t OB_RDP)
   - void FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY)
   - void FLASH_OB_BORConfig(uint8_t OB_BOR)
   - FLASH_Status FLASH_ProgramOTP(uint32_t Address, uint32_t Data)                         
   - FLASH_Status FLASH_OB_Launch(void)
   - uint32_t FLASH_OB_GetUser(void)                        
   - uint8_t FLASH_OB_GetWRP(void)                      
   - uint8_t FLASH_OB_GetRDP(void)                          
   - uint8_t FLASH_OB_GetBOR(void)
   
   Any operation of erase or program should follow these steps:
   1. Call the FLASH_OB_Unlock() function to enable the FLASH option control register access

   2. Call one or several functions to program the desired Option Bytes:
      - void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState NewState) => to Enable/Disable 
        the desired sector write protection
      - void FLASH_OB_RDPConfig(uint8_t OB_RDP) => to set the desired read Protection Level
      - void FLASH_OB_UserConfig(uint8_t OB_IWDG, uint8_t OB_STOP, uint8_t OB_STDBY) => to configure 
        the user Option Bytes.
      - void FLASH_OB_BORConfig(uint8_t OB_BOR) => to set the BOR Level              

   3. Once all needed Option Bytes to be programmed are correctly written, call the
      FLASH_OB_Launch() function to launch the Option Bytes programming process.
     
     @note When changing the IWDG mode from HW to SW or from SW to HW, a system 
           reset is needed to make the change effective.  

   4. Call the FLASH_OB_Lock() function to disable the FLASH option control register
      access (recommended to protect the Option Bytes against possible unwanted operations)

Function Documentation

void FLASH_OB_BORConfig ( uint8_t  OB_BOR)

Sets the BOR Level.

Parameters
OB_BOR,:specifies the Option Bytes BOR Reset Level. This parameter can be one of the following values:
  • OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
  • OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
  • OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
  • OB_BOR_OFF: Supply voltage ranges from 1.62 to 2.1 V
Return values
None
uint8_t FLASH_OB_GetBOR ( void  )

Returns the FLASH BOR level.

Parameters
None
Return values
TheFLASH BOR level:
  • OB_BOR_LEVEL3: Supply voltage ranges from 2.7 to 3.6 V
  • OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
  • OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
  • OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V
FlagStatus FLASH_OB_GetRDP ( void  )

Returns the FLASH Read Protection level.

Parameters
None
Return values
FLASHReadOut Protection Status:
  • SET, when OB_RDP_Level_1 or OB_RDP_Level_2 is set
  • RESET, when OB_RDP_Level_0 is set
uint8_t FLASH_OB_GetUser ( void  )

Returns the FLASH User Option Bytes values.

Parameters
None
Return values
TheFLASH User Option Bytes values: IWDG_SW(Bit0), RST_STOP(Bit1) and RST_STDBY(Bit2).
uint16_t FLASH_OB_GetWRP ( void  )

Returns the FLASH Write Protection Option Bytes value.

Parameters
None
Return values
TheFLASH Write Protection Option Bytes value
FLASH_Status FLASH_OB_Launch ( void  )

Launch the option byte loading.

Parameters
None
Return values
FLASHStatus: The returned value can be: FLASH_BUSY, FLASH_ERROR_PROGRAM, FLASH_ERROR_WRP, FLASH_ERROR_OPERATION or FLASH_COMPLETE.
void FLASH_OB_Lock ( void  )

Locks the FLASH Option Control Registers access.

Parameters
None
Return values
None
void FLASH_OB_RDPConfig ( uint8_t  OB_RDP)

Sets the read protection level.

Parameters
OB_RDP,:specifies the read protection level. This parameter can be one of the following values:
  • OB_RDP_Level_0: No protection
  • OB_RDP_Level_1: Read protection of the memory
  • OB_RDP_Level_2: Full chip protection
!!!Warning!!! When enabling OB_RDP level 2 it's no more possible to go back to level 1 or 0
Return values
None
void FLASH_OB_Unlock ( void  )

Unlocks the FLASH Option Control Registers access.

Parameters
None
Return values
None
void FLASH_OB_UserConfig ( uint8_t  OB_IWDG,
uint8_t  OB_STOP,
uint8_t  OB_STDBY 
)

Programs the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY.

Parameters
OB_IWDG,:Selects the IWDG mode This parameter can be one of the following values:
  • OB_IWDG_SW: Software IWDG selected
  • OB_IWDG_HW: Hardware IWDG selected
OB_STOP,:Reset event when entering STOP mode. This parameter can be one of the following values:
  • OB_STOP_NoRST: No reset generated when entering in STOP
  • OB_STOP_RST: Reset generated when entering in STOP
OB_STDBY,:Reset event when entering Standby mode. This parameter can be one of the following values:
  • OB_STDBY_NoRST: No reset generated when entering in STANDBY
  • OB_STDBY_RST: Reset generated when entering in STANDBY
Return values
None
void FLASH_OB_WRPConfig ( uint32_t  OB_WRP,
FunctionalState  NewState 
)

Enables or disables the write protection of the desired sectors.

Parameters
OB_WRP,:specifies the sector(s) to be write protected or unprotected. This parameter can be one of the following values:
  • OB_WRP: A value between OB_WRP_Sector0 and OB_WRP_Sector11
  • OB_WRP_Sector_All
Newstate,:new state of the Write Protection. This parameter can be: ENABLE or DISABLE.
Return values
None