#include #include "All_define.h" uint32_t OTA_Reciv_Datalen; uint32_t IAPUpdateFlag = 0; //------------------------------------------------------------------------------------------------------------------- // @brief 校验FLASH是否有数据 // @param add 检查的数据地址 // @param len 检查的地址后的后几个字节的数据 // @return 返回1有数据 返回0没有数据 如果需要对有数据的区域写入新的数据则应该对所在扇区进行擦除操作 // @since v1.0 // Sample usage: flash_check(PAGE_FIRST_ADD(127),4);//检查第127页从首地址开始的后四个字节是否有数据 //------------------------------------------------------------------------------------------------------------------- uint8_t flash_check (uint32_t add, uint16_t len) { uint16_t temp_loop; for(temp_loop = 0; temp_loop < len; temp_loop+=1) // 循环读取 Flash 的值 { if( (*(__IO uint8_t*) (add+temp_loop)) != 0xff ) // 如果不是 0xff 那就是有值 return 1; } return 0; } //------------------------------------------------------------------------------------------------------------------- // @brief FLASH字写数据 // @param add 需要写入的地址 范围0x80000000 - 0x801fffb // @param data 需要写入的数据 // @return 返回1表示写入失败(可能因为写入的地址有数据),返回零写入成功 // @since v1.0 // Sample usage: flash_word_write(PAGE_FIRST_ADD(127),0x01010101); //------------------------------------------------------------------------------------------------------------------- uint8_t flash_word_write (uint32_t add,uint32_t data) { fmc_unlock(); if(flash_check(add,4)) return 1; else fmc_word_program(add, data); fmc_lock(); return 0; } //------------------------------------------------------------------------------------------------------------------- // @brief FLASH读数据 // @param add 需要读数据的地址 范围0x80000000 - 0x801fffb // @param // @return 读出的数据 // @since v1.0 // Sample usage: flash_word_read(PAGE_FIRST_ADD(127)+0*WORD_SIZE); //------------------------------------------------------------------------------------------------------------------- uint32_t flash_word_read (uint32_t add) { return *(__IO uint32_t*)(add); } /*************************************************************************************************** * 函数名称: MemReadByte() * 函数功能: 从存储器中读出num字节数据 * 入口参数: *dat:读出数据的保存地址 * num :读出的字节数 * 出口参数: 0:操作失败;1:操作成功 * 使用说明: 无 * 创建日期: 2010年12月15日 ***************************************************************************************************/ uint8_t MemReadByte(uint16_t *data,uint16_t num) { uint16_t *temp_addr = (uint16_t *)PAGE_ADDR; while(num --) { *data ++ = *temp_addr ++; } return 1; } /*************************************************************************************************** * 函数名称: MemWriteByte() * 函数功能: 向存储器中写入num字节数据 * 入口参数: *dat:待写入数据 * num :写入的字节数 * 出口参数: 0:操作失败;1:操作成功 * 使用说明: 无 * 创建日期: 2010年12月15日 ***************************************************************************************************/ uint8_t MemWriteByte(uint16_t *data,uint16_t num) { fmc_state_enum temp_stat; uint32_t temp_addr = PAGE_ADDR; fmc_unlock(); // Flash解锁,允许操作相关的寄存器 temp_stat = fmc_page_erase(PAGE_ADDR); // 擦出制定的页 if(temp_stat != FMC_READY) { fmc_lock(); return 0; } while(num --) { temp_stat = fmc_halfword_program(temp_addr,*data); if(temp_stat != FMC_READY) { fmc_lock(); return 0; } temp_addr += 2; data++; } fmc_lock(); return 1; } void MemData_write(void) { u16 saveData1[40] = {0}; saveData1[0] = dis_page_param.face_plate_param.Code_Version; saveData1[1] = dis_page_param.face_plate_param.Compensates_temp; saveData1[2] = dis_page_param.face_plate_param.Air_condition_Relay; saveData1[3] = dis_page_param.face_plate_param.Floor_heating_Relay ; saveData1[4] = dis_page_param.face_plate_param.Fresh_air_Relay; saveData1[5] = dis_page_param.face_plate_param.Ltemp_Protection_valve; saveData1[6] = dis_page_param.face_plate_param.Lock_screen; saveData1[7] = dis_page_param.face_plate_param.Full_Half_Lock; saveData1[8] = dis_page_param.face_plate_param.Data_send; saveData1[9] = dis_page_param.face_plate_param.Sleep_time_addr; saveData1[10] = dis_page_param.face_plate_param.Led_Brightness; saveData1[11] = dis_page_param.face_plate_param.Env_Light; saveData1[12] = dis_page_param.face_plate_param.Device_Slave_addr; saveData1[13] = dis_page_param.face_plate_param.Device_BaudRate; saveData1[14] = dis_page_param.face_plate_param.TempHumi_UpdateMode; saveData1[15] = dis_page_param.face_plate_param.Open_device_mode; saveData1[16] = dis_page_param.face_plate_param.Ltemp_Protection_valve; saveData1[17] = dis_page_param.face_plate_param.Floor_Heating_Protecton_value; saveData1[18] = dis_page_param.face_plate_param.Parm_SaveFlag; saveData1[19] = dis_page_param.face_plate_param.Panel_Shield; saveData1[30] = dis_page_param.face_plate_param.HTemp_Limit; saveData1[31] = dis_page_param.face_plate_param.LTemp_Limit; saveData1[32] = dis_page_param.face_plate_param.Speed_Relay; if(Parm_Save == 1) { saveData1[20] = dis_page_param.face_plate_param.Air_condition_mode ; saveData1[21] = dis_page_param.face_plate_param.Air_condition_switch ; saveData1[22] = dis_page_param.face_plate_param.Air_set_temp ; saveData1[23] = dis_page_param.face_plate_param.Air_wind_speed ; saveData1[24] = dis_page_param.face_plate_param.Air_relay_switch ; saveData1[25] = dis_page_param.face_plate_param.Floor_heating_switch ; saveData1[26] = dis_page_param.face_plate_param.Floor_heating_set_temp ; saveData1[27] = dis_page_param.face_plate_param.Floor_relay_switch ; saveData1[28] = dis_page_param.face_plate_param.Fresh_air_switch ; saveData1[29] = dis_page_param.face_plate_param.Fresh_air_speed; } MemWriteByte(saveData1, sizeof(saveData1)); } uint8_t MemData_check(void) { uint8_t Data_need_write = 0; u8 EI = (dis_page_param.face_plate_param.Compensates_temp & 0xf0) >> 4; u8 EE = (dis_page_param.face_plate_param.Compensates_temp & 0x0F); u8 EIE_flag = 0; if(EI == 0X0F && EE < 0x07) { EIE_flag ++; } else if(EI == 0X00 && EE >0x09) { EIE_flag ++; } if(EIE_flag > 0) { dis_page_param.face_plate_param.Compensates_temp = 0x00; Data_need_write++; } u8 QQ = (dis_page_param.face_plate_param.Air_condition_Relay & 0xFF00) >> 8; u8 QI = (dis_page_param.face_plate_param.Air_condition_Relay & 0xFF); u8 QQI_flag = 0; if(QQ >2 ) { QQI_flag ++; } else if(QI > 3) { QQI_flag ++; } if(QQI_flag > 0) { dis_page_param.face_plate_param.Air_condition_Relay = 0x0101; Data_need_write++; } QQ = (dis_page_param.face_plate_param.Floor_heating_Relay & 0xFF00) >> 8; QI = (dis_page_param.face_plate_param.Floor_heating_Relay & 0xFF); QQI_flag = 0; if(QQ >2 ) { QQI_flag ++; } else if(QI > 2) { QQI_flag ++; } if(QQI_flag > 0) { dis_page_param.face_plate_param.Floor_heating_Relay = 0x0101; Data_need_write++; } if(dis_page_param.face_plate_param.Fresh_air_Relay > 1) { dis_page_param.face_plate_param.Fresh_air_Relay = 0x00; Data_need_write++; } if( (dis_page_param.face_plate_param.Ltemp_Protection_valve >0x05 && dis_page_param.face_plate_param.Ltemp_Protection_valve <0x0f) \ || dis_page_param.face_plate_param.Ltemp_Protection_valve > 0x0f) { dis_page_param.face_plate_param.Ltemp_Protection_valve = 0x0f; Data_need_write++; } if( dis_page_param.face_plate_param.Lock_screen > 0x01) { dis_page_param.face_plate_param.Lock_screen = 0x00; Data_need_write++; } if( dis_page_param.face_plate_param.Full_Half_Lock > 0x01) { dis_page_param.face_plate_param.Full_Half_Lock = 0x00; Data_need_write++; } if( dis_page_param.face_plate_param.Data_send > 0x01) { dis_page_param.face_plate_param.Data_send = 0x00; Data_need_write++; } if (dis_page_param.face_plate_param.Sleep_time_addr > 5 &&dis_page_param.face_plate_param.Sleep_time_addr <0xf) { dis_page_param.face_plate_param.Sleep_time_addr = 0x05; Data_need_write++; } else if (dis_page_param.face_plate_param.Sleep_time_addr > 0x0f) { dis_page_param.face_plate_param.Sleep_time_addr = 0x0f; Data_need_write++; } QQ = (dis_page_param.face_plate_param.Led_Brightness & 0x0F00) >> 8; QI = (dis_page_param.face_plate_param.Led_Brightness & 0x00F); QQI_flag = 0; if(QQ > 1) { QQI_flag++; } else if(QI > 6) { QQI_flag++; } if(QQI_flag > 0) { dis_page_param.face_plate_param.Led_Brightness = 0x0001; Data_need_write++; } if(dis_page_param.face_plate_param.Env_Light > 7) { dis_page_param.face_plate_param.Env_Light = 0x01; Data_need_write++; } const uint16_t baudrate[7] = {0x01e0,0x03c0,0x05a0,0x0780,0x0f00,0x15e0,0x0000}; uint8_t i = 0; for( i = 0; i < 7; i++) { if(dis_page_param.face_plate_param.Device_BaudRate == baudrate[i]) { break; } } if(i == 7) { dis_page_param.face_plate_param.Device_BaudRate = 0x03c0; Data_need_write++; } QQ = (dis_page_param.face_plate_param.TempHumi_UpdateMode & 0xFF00) >> 8; QI = (dis_page_param.face_plate_param.TempHumi_UpdateMode & 0xFF); QQI_flag = 0; if(QQ > 3) { QQI_flag++; } else if(QI > 0x0c) { QQI_flag++; } if(QQI_flag > 0) { dis_page_param.face_plate_param.TempHumi_UpdateMode = 0x0000; Data_need_write++; } if(dis_page_param.face_plate_param.Open_device_mode > 1) { dis_page_param.face_plate_param.Open_device_mode = 0x0000; Data_need_write++; } if( (dis_page_param.face_plate_param.Ltemp_Protection_valve > 5 && dis_page_param.face_plate_param.Ltemp_Protection_valve <0xf) || \ dis_page_param.face_plate_param.Ltemp_Protection_valve > 0x0f) { dis_page_param.face_plate_param.Ltemp_Protection_valve = 0x0f; Data_need_write++; } if( dis_page_param.face_plate_param.Floor_Heating_Protecton_value == 0|| \ dis_page_param.face_plate_param.Ltemp_Protection_valve > 0x05) { dis_page_param.face_plate_param.Floor_Heating_Protecton_value = 0x01; Data_need_write++; } if( dis_page_param.face_plate_param.Parm_SaveFlag > 1) { dis_page_param.face_plate_param.Parm_SaveFlag = 0x00; Data_need_write++; } if( dis_page_param.face_plate_param.Panel_Shield > 7 || dis_page_param.face_plate_param.Panel_Shield == 0) { dis_page_param.face_plate_param.Panel_Shield = 0x07; Data_need_write++; } if(dis_page_param.face_plate_param.Parm_SaveFlag) { if( dis_page_param.face_plate_param.Air_condition_mode > 3) { dis_page_param.face_plate_param.Air_condition_mode = 0; Data_need_write++; } if( dis_page_param.face_plate_param.Air_condition_switch > 1) { dis_page_param.face_plate_param.Air_condition_switch = 0; Data_need_write++; } if( dis_page_param.face_plate_param.Air_set_temp > 32 || dis_page_param.face_plate_param.Air_set_temp < 10) { dis_page_param.face_plate_param.Air_set_temp = 25; Data_need_write++; } if( dis_page_param.face_plate_param.Air_wind_speed != 0X0100 && (dis_page_param.face_plate_param.Air_wind_speed == 0 || dis_page_param.face_plate_param.Air_wind_speed >3)) { dis_page_param.face_plate_param.Air_set_temp = 0X01; Data_need_write++; } uint8_t flag = 0; uint8_t dataH = (uint8_t ) ( (dis_page_param.face_plate_param.Air_relay_switch &0xff00) >> 8); uint8_t dataL = (uint8_t ) ( (dis_page_param.face_plate_param.Air_relay_switch &0x00ff) >> 0); if(dataH == 0) { if(dataL != 0) { flag = 1; } } else if(dataH == 0x01 || dataH == 0x02) { if(dataL == 0 || dataL > 3) { flag = 1; } } if( flag == 1) { dis_page_param.face_plate_param.Air_relay_switch = 0x0000; Data_need_write++; } flag = 0; dataH = (uint8_t ) ( (dis_page_param.face_plate_param.Floor_relay_switch &0xff00) >> 8); dataL = (uint8_t ) ( (dis_page_param.face_plate_param.Floor_relay_switch &0x00ff) >> 0); if(dataH == 0) { if(dataL != 0) { flag = 1; } } else if(dataH == 0x01 || dataH == 0x02) { if(dataL == 0 || dataL > 2) { flag = 1; } } if( flag == 1) { dis_page_param.face_plate_param.Floor_relay_switch = 0x0000; Data_need_write++; } if( dis_page_param.face_plate_param.Floor_heating_switch > 1) { dis_page_param.face_plate_param.Floor_heating_switch = 0; Data_need_write++; } if( dis_page_param.face_plate_param.Floor_heating_set_temp > 32 || dis_page_param.face_plate_param.Floor_heating_set_temp < 10) { dis_page_param.face_plate_param.Floor_heating_set_temp = 25; Data_need_write++; } if( dis_page_param.face_plate_param.Fresh_air_switch > 1) { dis_page_param.face_plate_param.Fresh_air_switch = 0; Data_need_write++; } if( dis_page_param.face_plate_param.Fresh_air_speed == 0 || dis_page_param.face_plate_param.Fresh_air_speed > 3 ) { dis_page_param.face_plate_param.Fresh_air_speed = 1; Data_need_write++; } } if( dis_page_param.face_plate_param.HTemp_Limit < 16 || dis_page_param.face_plate_param.HTemp_Limit > 30 ) { dis_page_param.face_plate_param.HTemp_Limit = 30; Data_need_write++; } if( dis_page_param.face_plate_param.LTemp_Limit < 16 || dis_page_param.face_plate_param.LTemp_Limit > 30 || dis_page_param.face_plate_param.LTemp_Limit >= dis_page_param.face_plate_param.HTemp_Limit) { dis_page_param.face_plate_param.LTemp_Limit = 16; Data_need_write++; } if( dis_page_param.face_plate_param.Speed_Relay > 1) { dis_page_param.face_plate_param.Speed_Relay = 0; Data_need_write++; } return Data_need_write; } void MemData_Reset(void) { u16 saveData1[40] = {0}; dis_page_param.face_plate_param.Code_Version = CODE_VERSION; dis_page_param.face_plate_param.Compensates_temp = 0x00; dis_page_param.face_plate_param.Air_condition_Relay = 0x0101; dis_page_param.face_plate_param.Floor_heating_Relay = 0x0101; dis_page_param.face_plate_param.Fresh_air_Relay = 0x0000; dis_page_param.face_plate_param.Ltemp_Protection_valve = 0x00; dis_page_param.face_plate_param.Lock_screen = 0x00; dis_page_param.face_plate_param.Full_Half_Lock = 0x00; dis_page_param.face_plate_param.Data_send = 0x00; dis_page_param.face_plate_param.Sleep_time_addr = 0x0f; dis_page_param.face_plate_param.Led_Brightness = 0x0001; dis_page_param.face_plate_param.Env_Light = 0x04; dis_page_param.face_plate_param.Device_Slave_addr = 0x01; dis_page_param.face_plate_param.Device_BaudRate = 0x03c0; dis_page_param.face_plate_param.TempHumi_UpdateMode = 0x0000; dis_page_param.face_plate_param.Open_device_mode = 0x00; dis_page_param.face_plate_param.Parm_SaveFlag = 0; dis_page_param.face_plate_param.Panel_Shield = 0X07; dis_page_param.face_plate_param.HTemp_Limit = 30; dis_page_param.face_plate_param.LTemp_Limit = 16; dis_page_param.face_plate_param.Speed_Relay = 0; dis_page_param.face_plate_param.Air_condition_mode = 0; dis_page_param.face_plate_param.Air_condition_switch = 0; dis_page_param.face_plate_param.Air_set_temp = 18; dis_page_param.face_plate_param.Air_wind_speed = 0x0002; dis_page_param.face_plate_param.Air_relay_switch = 0x00; dis_page_param.face_plate_param.Floor_heating_switch = 0; dis_page_param.face_plate_param.Floor_heating_set_temp = 28; dis_page_param.face_plate_param.Floor_relay_switch = 0x00; dis_page_param.face_plate_param.Fresh_condition_mode=0; dis_page_param.face_plate_param.Fresh_air_switch = 0; dis_page_param.face_plate_param.Fresh_air_speed = 2; dis_page_param.face_plate_param.Fresh_set_temp=18; saveData1[0] = dis_page_param.face_plate_param.Code_Version; saveData1[1] = dis_page_param.face_plate_param.Compensates_temp; saveData1[2] = dis_page_param.face_plate_param.Air_condition_Relay; saveData1[3] = dis_page_param.face_plate_param.Floor_heating_Relay ; saveData1[4] = dis_page_param.face_plate_param.Fresh_air_Relay; saveData1[5] = dis_page_param.face_plate_param.Ltemp_Protection_valve; saveData1[6] = dis_page_param.face_plate_param.Lock_screen; saveData1[7] = dis_page_param.face_plate_param.Full_Half_Lock; saveData1[8] = dis_page_param.face_plate_param.Data_send; saveData1[9] = dis_page_param.face_plate_param.Sleep_time_addr; saveData1[10] = dis_page_param.face_plate_param.Led_Brightness; saveData1[11] = dis_page_param.face_plate_param.Env_Light; saveData1[12] = dis_page_param.face_plate_param.Device_Slave_addr; saveData1[13] = dis_page_param.face_plate_param.Device_BaudRate; saveData1[14] = dis_page_param.face_plate_param.TempHumi_UpdateMode; saveData1[15] = dis_page_param.face_plate_param.Open_device_mode; saveData1[16] = dis_page_param.face_plate_param.Ltemp_Protection_valve; saveData1[17] = dis_page_param.face_plate_param.Floor_Heating_Protecton_value; saveData1[18] = dis_page_param.face_plate_param.Parm_SaveFlag; saveData1[19] = dis_page_param.face_plate_param.Panel_Shield; saveData1[30] = dis_page_param.face_plate_param.HTemp_Limit; saveData1[31] = dis_page_param.face_plate_param.LTemp_Limit; saveData1[32] = dis_page_param.face_plate_param.Speed_Relay; saveData1[20] = dis_page_param.face_plate_param.Air_condition_mode ; saveData1[21] = dis_page_param.face_plate_param.Air_condition_switch ; saveData1[22] = dis_page_param.face_plate_param.Air_set_temp ; saveData1[23] = dis_page_param.face_plate_param.Air_wind_speed ; saveData1[24] = dis_page_param.face_plate_param.Air_relay_switch ; saveData1[25] = dis_page_param.face_plate_param.Floor_heating_switch ; saveData1[26] = dis_page_param.face_plate_param.Floor_heating_set_temp ; saveData1[27] = dis_page_param.face_plate_param.Floor_relay_switch ; saveData1[28] = dis_page_param.face_plate_param.Fresh_air_switch ; saveData1[29] = dis_page_param.face_plate_param.Fresh_air_speed; memset(&dis_page_num ,0,sizeof(Dis_page_num)); dis_page_num.display_page = dis_air_Conditioning; MemWriteByte(saveData1, sizeof(saveData1)); } static u16 saveData1[40] = {0}; void MemData_init(void) { memset(&dis_page_param ,0,sizeof(Dis_page_param)); dis_page_param.face_plate_param.Reset_Flag = 0; u8 Data_need_write = 0; MemReadByte(saveData1, 80); dis_page_param.face_plate_param.Code_Version = saveData1[0]; if (dis_page_param.face_plate_param.Code_Version != CODE_VERSION) { Data_need_write += 1; dis_page_param.face_plate_param.Code_Version = CODE_VERSION; dis_page_param.face_plate_param.Compensates_temp = 0x00; dis_page_param.face_plate_param.Air_condition_Relay = 0x0101; dis_page_param.face_plate_param.Floor_heating_Relay = 0x0101; dis_page_param.face_plate_param.Fresh_air_Relay = 0x0000; dis_page_param.face_plate_param.Ltemp_Protection_valve = 0x00; dis_page_param.face_plate_param.Lock_screen = 0x00; dis_page_param.face_plate_param.Full_Half_Lock = 0x00; dis_page_param.face_plate_param.Data_send = 0x00; dis_page_param.face_plate_param.Sleep_time_addr = 0x0f; dis_page_param.face_plate_param.Led_Brightness = 0x0001; dis_page_param.face_plate_param.Env_Light = 0x04; dis_page_param.face_plate_param.Device_Slave_addr = 0x01; dis_page_param.face_plate_param.Device_BaudRate = 0x03c0; dis_page_param.face_plate_param.TempHumi_UpdateMode = 0x0000; dis_page_param.face_plate_param.Open_device_mode = 0x00; dis_page_param.face_plate_param.Parm_SaveFlag = 0; dis_page_param.face_plate_param.Panel_Shield = 0X07; dis_page_param.face_plate_param.HTemp_Limit = 30; dis_page_param.face_plate_param.LTemp_Limit = 16; dis_page_param.face_plate_param.Speed_Relay = 0; fuji_or_shuiji=0; } else { dis_page_param.face_plate_param.Compensates_temp = saveData1[1]; dis_page_param.face_plate_param.Air_condition_Relay = saveData1[2]; dis_page_param.face_plate_param.Floor_heating_Relay = saveData1[3]; dis_page_param.face_plate_param.Fresh_air_Relay = saveData1[4]; dis_page_param.face_plate_param.Ltemp_Protection_valve = saveData1[5]; dis_page_param.face_plate_param.Lock_screen = saveData1[6]; dis_page_param.face_plate_param.Full_Half_Lock = saveData1[7]; dis_page_param.face_plate_param.Data_send = saveData1[8]; dis_page_param.face_plate_param.Sleep_time_addr = saveData1[9]; dis_page_param.face_plate_param.Led_Brightness = saveData1[10]; dis_page_param.face_plate_param.Env_Light = saveData1[11]; dis_page_param.face_plate_param.Device_Slave_addr = saveData1[12]; dis_page_param.face_plate_param.Device_BaudRate = saveData1[13]; dis_page_param.face_plate_param.TempHumi_UpdateMode = saveData1[14]; dis_page_param.face_plate_param.Open_device_mode = saveData1[15]; dis_page_param.face_plate_param.Ltemp_Protection_valve = saveData1[16]; dis_page_param.face_plate_param.Floor_Heating_Protecton_value = saveData1[17]; dis_page_param.face_plate_param.Parm_SaveFlag = saveData1[18]; dis_page_param.face_plate_param.Panel_Shield = saveData1[19]; dis_page_param.face_plate_param.HTemp_Limit = 30; dis_page_param.face_plate_param.LTemp_Limit = 16; dis_page_param.face_plate_param.Speed_Relay = saveData1[32]; } if(Parm_Save == 1) { dis_page_param.face_plate_param.Air_condition_mode = saveData1[20]; dis_page_param.face_plate_param.Air_condition_switch = saveData1[21]; dis_page_param.face_plate_param.Air_set_temp = saveData1[22]; dis_page_param.face_plate_param.Air_wind_speed = saveData1[23]; dis_page_param.face_plate_param.Air_relay_switch = saveData1[24]; dis_page_param.face_plate_param.Floor_heating_switch = saveData1[25]; dis_page_param.face_plate_param.Floor_heating_set_temp = saveData1[26]; dis_page_param.face_plate_param.Floor_relay_switch = saveData1[27]; dis_page_param.face_plate_param.Fresh_air_switch = saveData1[28]; dis_page_param.face_plate_param.Fresh_air_speed = saveData1[29]; } else { dis_page_param.face_plate_param.Air_condition_mode = 0; dis_page_param.face_plate_param.Air_condition_switch = 0; dis_page_param.face_plate_param.Air_set_temp = 18; dis_page_param.face_plate_param.Air_wind_speed = 0x0002; dis_page_param.face_plate_param.Air_relay_switch = 0x00; dis_page_param.face_plate_param.Floor_heating_switch = 0; dis_page_param.face_plate_param.Floor_heating_set_temp = 28; dis_page_param.face_plate_param.Floor_relay_switch = 0x00; dis_page_param.face_plate_param.Fresh_condition_mode=0; dis_page_param.face_plate_param.Fresh_air_switch = 0; dis_page_param.face_plate_param.Fresh_air_speed = 2; dis_page_param.face_plate_param.Fresh_set_temp=18; } printf("Parm_Save %d\r\n",Parm_Save); if(MemData_check() >= 1) { MemData_write(); } if(dis_page_param.face_plate_param.Compensates_temp < 0) { dis_page_param.advanced_param.compensates_temp_character = 1; } else { dis_page_param.advanced_param.compensates_temp_character = 0; } }