void Sys_Soft_Reset(void)
{
//重启
CAN_DeInit(CAN1);
CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);
EXTI_DeInit();
TIM_DeInit(TIM3);
USART_DeInit(USART1);
USART_DeInit(USART3);
s_sys_info.s_sys_saved_info.v_auto_reset_flag = 1;
s_sys_info.v_auto_reset_count = 0;
bt_info.s_bt_cfg.v_checksum = MsgChkSum((INT8U *)&bt_info.s_bt_cfg,1,sizeof(bt_info.s_bt_cfg) - 2);
STMFLASH_Write(BT_DATA_ADD,(INT16U *)&bt_info.s_bt_cfg,sizeof(bt_info.s_bt_cfg) >> 1);//保存蓝牙配置
STMFLASH_Write(BT_DATA_BACKUP_ADD,(INT16U *)&bt_info.s_bt_cfg,sizeof(bt_info.s_bt_cfg) >> 1);//保存蓝牙配置
//保存车型
s_sys_info.s_footboard_config.v_checksum = MsgChkSum((INT8U *)&s_sys_info.s_footboard_config,2,sizeof(s_sys_info.s_footboard_config) - 2);
STMFLASH_Write(CURRENT_CAR_DATA_ADD,(u16*)(&s_sys_info.s_footboard_config),sizeof(s_sys_info.s_footboard_config)/2);
STMFLASH_Write(CURRENT_CAR_DATA_BACKUP_ADD,(u16*)(&s_sys_info.s_footboard_config),sizeof(s_sys_info.s_footboard_config)/2);
//保存系统信息
BKP_Write_Register(BKP_DR1,0x55AA);//保存后备寄存器标志
BKP_Write_Register(BKP_DR2,s_sys_info.s_sys_saved_info.v_auto_reset_flag);//保存自动重启标记
BKP_Write_Register(BKP_DR3,s_sys_info.s_sys_saved_info.v_left_door_change_num);//保存左门开关次数标记
SCB->AIRCR =0X05FA0000|(u32)0x04;
}
|