|
@@ -7,6 +7,10 @@ FLASH_EraseInitTypeDef EEPROM_AreaEraseInitStruct;
|
|
|
TrueOrFalse_Flag_Struct_t IsPowerOffDataBkp_SaveFlag = FALSE;
|
|
|
TrueOrFalse_Flag_Struct_t IsFlashSaveDataUpdate = FALSE;
|
|
|
|
|
|
+/****************************局部变量定义******************************/
|
|
|
+uint8_t Flash_ReadDataBuf[256];
|
|
|
+uint32_t Flash_WriteDataBuf[256];
|
|
|
+
|
|
|
/****************************全局函数定义******************************/
|
|
|
//数据写入
|
|
|
void CopyDataToEEPROM_Flash(void)
|
|
@@ -46,75 +50,74 @@ void CopyDataToEEPROM_Flash(void)
|
|
|
|
|
|
void CopyDataFromEEPROM_Flash(void)
|
|
|
{
|
|
|
- uint8_t Data_Buf[256];
|
|
|
int8_t Error_OK;
|
|
|
|
|
|
//读取型号
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MODE, Data_Buf, 16);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MODE, Flash_ReadDataBuf, 16);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(MC_VerInfo.Mode, Data_Buf, 16);
|
|
|
+ memcpy(MC_VerInfo.Mode, Flash_ReadDataBuf, 16);
|
|
|
}
|
|
|
//读取序列号
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_SN, Data_Buf, 16);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_SN, Flash_ReadDataBuf, 16);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(MC_VerInfo.SN_Num, Data_Buf, 16);
|
|
|
+ memcpy(MC_VerInfo.SN_Num, Flash_ReadDataBuf, 16);
|
|
|
}
|
|
|
//读取生产信息
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MAC_INFO, Data_Buf, 32);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MAC_INFO, Flash_ReadDataBuf, 32);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(MC_MacInfo.Manufacturer, Data_Buf, 32);
|
|
|
+ memcpy(MC_MacInfo.Manufacturer, Flash_ReadDataBuf, 32);
|
|
|
}
|
|
|
//读取自定义字符串1
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO1, Data_Buf, 16);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO1, Flash_ReadDataBuf, 16);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(&UserString1, Data_Buf, 16);
|
|
|
+ memcpy(&UserString1, Flash_ReadDataBuf, 16);
|
|
|
}
|
|
|
//读取自定义字符串2
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO2, Data_Buf, 16);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO2, Flash_ReadDataBuf, 16);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(&UserString2, Data_Buf, 16);
|
|
|
+ memcpy(&UserString2, Flash_ReadDataBuf, 16);
|
|
|
}
|
|
|
//读取自定义字符串3
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO3, Data_Buf, 16);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_USER_INFO3, Flash_ReadDataBuf, 16);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy(&UserString3, Data_Buf, 16);
|
|
|
+ memcpy(&UserString3, Flash_ReadDataBuf, 16);
|
|
|
}
|
|
|
//读取配置参数1
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_CONFIG_PARAM1, Data_Buf, sizeof(MC_ConfigParam1_Struct_t));
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_CONFIG_PARAM1, Flash_ReadDataBuf, sizeof(MC_ConfigParam1_Struct_t));
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&MC_ConfigParam1.GasCtrlMode_Param, Data_Buf, sizeof(MC_ConfigParam1_Struct_t));
|
|
|
+ memcpy((uint8_t*)&MC_ConfigParam1.GasCtrlMode_Param, Flash_ReadDataBuf, sizeof(MC_ConfigParam1_Struct_t));
|
|
|
}
|
|
|
MC_GasMode_Param.Mode = MC_ConfigParam1.GasCtrlMode_Param;
|
|
|
//读取配置参数2
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_CONFIG_PARAM2, Data_Buf, sizeof(MC_ConfigParam2_Struct_t));
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_CONFIG_PARAM2, Flash_ReadDataBuf, sizeof(MC_ConfigParam2_Struct_t));
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&MC_ConfigParam2.ZeroAngle_Pitch, Data_Buf, sizeof(MC_ConfigParam2_Struct_t));
|
|
|
+ memcpy((uint8_t*)&MC_ConfigParam2.ZeroAngle_Pitch, Flash_ReadDataBuf, sizeof(MC_ConfigParam2_Struct_t));
|
|
|
}
|
|
|
//读取马达配置参数
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MOTOR_PARAM, Data_Buf, sizeof(MC_MotorParam_Struct_t));
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_MOTOR_PARAM, Flash_ReadDataBuf, sizeof(MC_MotorParam_Struct_t));
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&MC_MotorParam.Rate_Power, Data_Buf, sizeof(MC_MotorParam_Struct_t));
|
|
|
+ memcpy((uint8_t*)&MC_MotorParam.Rate_Power, Flash_ReadDataBuf, sizeof(MC_MotorParam_Struct_t));
|
|
|
}
|
|
|
//读取自动变速器控制参数
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_GEARBOX_PARAMS, Data_Buf, 8);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_GEARBOX_PARAMS, Flash_ReadDataBuf, 8);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&GearBox_OBC_SetParams.GearNum, Data_Buf, 8);
|
|
|
+ memcpy((uint8_t*)&GearBox_OBC_SetParams.GearNum, Flash_ReadDataBuf, 8);
|
|
|
}
|
|
|
//读取电池放电曲线参数
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_BATTERY_PARMAS, Data_Buf, sizeof(BatterCellInfo_Struct_t));
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_BATTERY_PARMAS, Flash_ReadDataBuf, sizeof(BatterCellInfo_Struct_t));
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&BatteryCellInfo.DesignCap, Data_Buf, sizeof(BatterCellInfo_Struct_t));
|
|
|
+ memcpy((uint8_t*)&BatteryCellInfo.DesignCap, Flash_ReadDataBuf, sizeof(BatterCellInfo_Struct_t));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -161,7 +164,6 @@ void EEPROM_Flash_Erase(uint32_t BeginAddress, uint32_t EndAddress)
|
|
|
}
|
|
|
|
|
|
//指定地址读取指定长度数据类型为8bit数据
|
|
|
-uint8_t Flash_ReadDataBuf[256];
|
|
|
int8_t ReadDataFromEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uint8_t Length) // Length必须为4的倍数
|
|
|
{
|
|
|
uint32_t DataTemp32, CRC_Data, CRC_Result;
|
|
@@ -191,7 +193,6 @@ int8_t ReadDataFromEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uint8_t Le
|
|
|
}
|
|
|
|
|
|
//指定地址写入指定长度数据类型为8bit数据,并写入crc校验码
|
|
|
-uint32_t Flash_WriteDataBuf[64];
|
|
|
void SaveDataToEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uint8_t Length) // Length必须为4的倍数
|
|
|
{
|
|
|
uint32_t CRC_Result;
|
|
@@ -249,19 +250,18 @@ void EEPROM_Flash_DataUpdate(TrueOrFalse_Flag_Struct_t* IsUpdateFlag)
|
|
|
|
|
|
TrueOrFalse_Flag_Struct_t EEPROM_Flash_TempCheck(void)
|
|
|
{
|
|
|
- uint8_t Data_Buf[64];
|
|
|
int8_t Error_OK;
|
|
|
|
|
|
//读取掉电临时保存的数据
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, Data_Buf, 4);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, Flash_ReadDataBuf, 4);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- if(strncmp("FLAG", (char*)Data_Buf, 4) == 0) //关机前进行过存储
|
|
|
+ if(strncmp("FLAG", (char*)Flash_ReadDataBuf, 4) == 0) //关机前进行过存储
|
|
|
{
|
|
|
- Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, Data_Buf, 40);
|
|
|
+ Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, Flash_ReadDataBuf, 40);
|
|
|
if(Error_OK == 0)
|
|
|
{
|
|
|
- memcpy((uint8_t*)&MC_PowerOffBkp.ODO_Km, Data_Buf, 40);
|
|
|
+ memcpy((uint8_t*)&MC_PowerOffBkp.ODO_Km, Flash_ReadDataBuf, 40);
|
|
|
return TRUE;
|
|
|
}
|
|
|
}
|