diff --git a/Firmware/Source/Component/Mileage/Services_Mileage_User.c b/Firmware/Source/Component/Mileage/Services_Mileage_User.c index d000ccbfc9e4ab683c2c66d7ec6d2298ce1be616..b268ba7c5dce7d619e022e256e26c50369d4d5d4 100644 --- a/Firmware/Source/Component/Mileage/Services_Mileage_User.c +++ b/Firmware/Source/Component/Mileage/Services_Mileage_User.c @@ -7,6 +7,8 @@ uint8_t DataTripBuf[Data_MEM_Block_Trip * EM_TRIP_MAX]; Mileage_t g_WriteMileage; Mileage_t g_ReadMileage; uint8_t odo_writeState; +uint8_t odoclr_writeState; +uint8_t trip_writeState; uint8_t odo_readState; uint32_t Milleage_InitFlag = 0U; /****************************************************************************** @@ -203,11 +205,19 @@ uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t break; case EM_ODO_BLOCK: - eeprom_WriteRecord(EEPROM_BLOCK_01, (uint8_t *)u32Data, u16Len * 4); + odoclr_writeState = eeprom_WriteRecord(EEPROM_BLOCK_01, (uint8_t *)u32Data, u16Len * 4); + while(odoclr_writeState == WRITING) + { + odoclr_writeState = eeprom_WriteRecord(EEPROM_BLOCK_01, (uint8_t *)u32Data, u16Len * 4); + } break; case EM_TRIP_BLOCK: - eeprom_WriteRecord(EEPROM_BLOCK_03, (uint8_t *)u32Data, u16Len * 4); + trip_writeState = eeprom_WriteRecord(EEPROM_BLOCK_03, (uint8_t *)u32Data, u16Len * 4); + while(trip_writeState == WRITING) + { + trip_writeState = eeprom_WriteRecord(EEPROM_BLOCK_03, (uint8_t *)u32Data, u16Len * 4); + } break; // case EM_Maintenance_BLOCK: