6969 * @{
7070 */
7171// We use the last page of the flash to store data (to prevent code overwritten).
72- #if defined (STM32F0xx ) || defined (STM32F1xx )
72+ #if defined (STM32F0xx ) || defined (STM32F1xx ) || defined( STM32L1xx )
7373#ifdef FLASH_BANK2_END
7474#define FLASH_BASE_ADDRESS ((uint32_t)((FLASH_BANK2_END + 1) - FLASH_PAGE_SIZE))
7575#else
@@ -200,7 +200,7 @@ void set_data_to_flash(void)
200200 uint32_t address = FLASH_BASE_ADDRESS ;
201201 uint32_t address_end = FLASH_BASE_ADDRESS + E2END ;
202202#if defined (STM32F0xx ) || defined (STM32F1xx ) || defined (STM32F3xx ) || \
203- defined (STM32L0xx ) || defined(STM32L4xx )
203+ defined (STM32L0xx ) || defined ( STM32L1xx ) || defined (STM32L4xx )
204204 uint32_t pageError = 0 ;
205205 uint64_t data = 0 ;
206206
@@ -218,18 +218,26 @@ void set_data_to_flash(void)
218218 EraseInitStruct .NbPages = 1 ;
219219
220220 if (HAL_FLASH_Unlock () == HAL_OK ) {
221- #ifdef STM32L0xx
221+ #if defined( STM32L0xx )
222222 __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
223223 FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR |FLASH_FLAG_RDERR |\
224224 FLASH_FLAG_FWWERR |FLASH_FLAG_NOTZEROERR );
225+ #elif defined(STM32L1xx )
226+ #if defined(FLASH_SR_RDERR )
227+ __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
228+ FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR |FLASH_FLAG_RDERR );
229+ #else
230+ __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGAERR |\
231+ FLASH_FLAG_SIZERR |FLASH_FLAG_OPTVERR );
232+ #endif
225233#elif defined (STM32L4xx )
226234 __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_ALL_ERRORS );
227235#else
228236 __HAL_FLASH_CLEAR_FLAG (FLASH_FLAG_EOP |FLASH_FLAG_WRPERR |FLASH_FLAG_PGERR );
229237#endif
230238 if (HAL_FLASHEx_Erase (& EraseInitStruct , & pageError ) == HAL_OK ) {
231239 while (address < address_end ) {
232- #ifdef STM32L0xx
240+ #if defined( STM32L0xx ) || defined( STM32L1xx )
233241 memcpy (& data , tmpEE + offset , sizeof (uint32_t ));
234242 if (HAL_FLASH_Program (FLASH_TYPEPROGRAM_WORD , address , data ) == HAL_OK ) {
235243 address += 4 ;
0 commit comments