Commit 1f9e5e81 authored by 陈家乐's avatar 陈家乐

🐞 fix:写EE增加错误处理

parent d950f438
...@@ -207,6 +207,21 @@ uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t ...@@ -207,6 +207,21 @@ uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t
case EM_ODO_BLOCK: case EM_ODO_BLOCK:
timeout = 0; timeout = 0;
odoclr_writeState = 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 == WRITE_FAIL)
{
eeprom_comm_DelayUs(5000);
odoclr_writeState = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4);
timeout++;
if(odoclr_writeState != WRITE_FAIL)
{
break;
}
if(timeout >= 3)
{
return;
}
}
timeout = 0;
while(odoclr_writeState == WRITING) while(odoclr_writeState == WRITING)
{ {
odoclr_writeState = eeprom_WriteRecord(EEPROM_BLOCK_01, (uint8_t *)u32Data, u16Len * 4); odoclr_writeState = eeprom_WriteRecord(EEPROM_BLOCK_01, (uint8_t *)u32Data, u16Len * 4);
...@@ -221,6 +236,22 @@ uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t ...@@ -221,6 +236,22 @@ uint32_t Data_User_EEPROM_Read(uint16_t u16BlockID, uint32_t u32Data[], uint16_t
case EM_TRIP_BLOCK: case EM_TRIP_BLOCK:
timeout = 0; timeout = 0;
trip_writeState = 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 == WRITE_FAIL)
{
eeprom_comm_DelayUs(5000);
trip_writeState = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4);
timeout++;
if(trip_writeState != WRITE_FAIL)
{
break;
}
if(timeout >= 3)
{
return;
}
}
timeout = 0;
eeprom_comm_DelayUs(5000);
while(trip_writeState == WRITING) while(trip_writeState == WRITING)
{ {
trip_writeState = eeprom_WriteRecord(EEPROM_BLOCK_03, (uint8_t *)u32Data, u16Len * 4); trip_writeState = eeprom_WriteRecord(EEPROM_BLOCK_03, (uint8_t *)u32Data, u16Len * 4);
......
...@@ -52,7 +52,23 @@ static void Service_Interval_Write_EEProm(uint32_t u32Data [], uint16_t u16Len) ...@@ -52,7 +52,23 @@ static void Service_Interval_Write_EEProm(uint32_t u32Data [], uint16_t u16Len)
{ {
ee_uint16_t tmpWritestatus = 0; ee_uint16_t tmpWritestatus = 0;
ee_uint16_t Cnt = 0; ee_uint16_t Cnt = 0;
ee_uint16_t TimeOut = 0;
tmpWritestatus = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4); tmpWritestatus = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4);
while(tmpWritestatus == WRITE_FAIL)
{
eeprom_comm_DelayUs(5000);
tmpWritestatus = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4);
TimeOut++;
if(tmpWritestatus != WRITE_FAIL)
{
break;
}
if(TimeOut >= 3)
{
return;
}
}
eeprom_comm_DelayUs(5000);
while(tmpWritestatus == WRITING) while(tmpWritestatus == WRITING)
{ {
tmpWritestatus = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4); tmpWritestatus = eeprom_WriteRecord(EEPROM_BLOCK_05, (uint8_t *)u32Data, u16Len * 4);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment