typedef struct
{
 uint32_t OptionType; /*!< OptionType: Option byte to be configured.
 This parameter can be a value of @ref FLASHEx_OB_Type */
 uint32_t WRPState; /*!< WRPState: Write protection activation or deactivation.
 This parameter can be a value of @ref FLASHEx_OB_WRP_State */
 uint32_t WRPPage; /*!< WRPPage: specifies the page(s) to be write protected
 This parameter can be a value of @ref FLASHEx_OB_Write_Protection */
 uint32_t Banks; /*!< Select banks for WRP activation/deactivation of all sectors.
 This parameter must be a value of @ref FLASHEx_Banks */ 
 
 uint8_t RDPLevel; /*!< RDPLevel: Set the read protection level..
 This parameter can be a value of @ref FLASHEx_OB_Read_Protection */
#if defined(FLASH_BANK2_END)
 uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: 
 IWDG / STOP / STDBY / BOOT1
 This parameter can be a combination of @ref FLASHEx_OB_IWatchdog, @ref FLASHEx_OB_nRST_STOP, 
 @ref FLASHEx_OB_nRST_STDBY, @ref FLASHEx_OB_BOOT1 */
#else
 uint8_t USERConfig; /*!< USERConfig: Program the FLASH User Option Byte: 
 IWDG / STOP / STDBY
 This parameter can be a combination of @ref FLASHEx_OB_IWatchdog, @ref FLASHEx_OB_nRST_STOP, 
 @ref FLASHEx_OB_nRST_STDBY */
#endif /* FLASH_BANK2_END */
 uint32_t DATAAddress; /*!< DATAAddress: Address of the option byte DATA to be programmed
 This parameter can be a value of @ref FLASHEx_OB_Data_Address */
 
 uint8_t DATAData; /*!< DATAData: Data to be stored in the option byte DATA
 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF */
} FLASH_OBProgramInitTypeDef;