From ae4a901ad5918e3f04e841830cc4bad2e44d2cdc Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期二, 09 五月 2023 16:19:21 +0800 Subject: [PATCH] 960字节uwb升级开发阶段性提交 --- Src/application/global_param.c | 64 ++++++++++++++++++++++++++++---- 1 files changed, 56 insertions(+), 8 deletions(-) diff --git a/Src/application/global_param.c b/Src/application/global_param.c index 958cf85..0bf1a4b 100644 --- a/Src/application/global_param.c +++ b/Src/application/global_param.c @@ -5,11 +5,59 @@ uint16_t g_com_map[COM_MAP_SIZE]; +void EnterUWBUpdateMode(void) +{ + uint32_t result = 0; + uint16_t tmp = 0xCCCC; + __disable_irq(); + result = FLASH_Prepare(0x8004A38, 128); + if(result) + result = FLASH_Write(0x8004A38, (const uint8_t*)&tmp, 2); + __enable_irq(); + printf("进入升级模式\r\n"); + g_com_map[CNT_UPDATE]=0; + save_com_map_to_flash(); + delay_ms(100); + // STMFLASH_Write_NoCheck(0x8004A38,0xAAAA); + // Delay_ms(100); + SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader +} +u8 parameter_check(void) +{ + if(g_com_map[0] != 0x55AA) + { + return 1; + } + if(g_com_map[COM_INTERVAL]<50||COM_INTERVAL>1000) + { + return 1; + } + if(g_com_map[POWER]>67) + { + return 1; + } + if(g_com_map[MOTOR_ENABLE]>1) + { + return 1; + } + if(g_com_map[IMU_ENABLE]>1) + { + return 1; + } + if(g_com_map[ACTIVE_INDEX]>1) + { + return 1; + } + return 0; +} uint32_t save_com_map_to_flash(void) { uint32_t result = 0; - + if(parameter_check()) //参数错误,不保存 + { + return 1; + } __disable_irq(); result = FLASH_Prepare(FLASH_IAP_CTRL_MAP, (COM_MAP_SIZE<<1)); if(result) @@ -25,9 +73,9 @@ if(g_com_map[0] != 0x55AA) { g_com_map[0] = 0x55AA; - g_com_map[DEV_ID] =0x1865;//DEFAULT_DEV_ID; //默认设备ID + g_com_map[DEV_ID] =0x1234;//DEFAULT_DEV_ID; //默认设备ID - g_com_map[COM_INTERVAL]=500; + g_com_map[COM_INTERVAL]=500; //频率2HZ g_com_map[MAX_REPORT_ANC_NUM]=10; g_com_map[GROUP_ID]=0; g_com_map[DIST_OFFSET]=-31; @@ -37,18 +85,18 @@ g_com_map[HEARTBEAT]=0; - g_com_map[POWER]=DEFAULT_RFPOWER; + g_com_map[POWER]=67; //发射功率 g_com_map[IMU_THRES]=2; - g_com_map[NOMOVESLEEP_TIME]=120; - g_com_map[MOTOR_ENABLE]=1; - g_com_map[IMU_ENABLE]=1; + g_com_map[NOMOVESLEEP_TIME]=120; //静止休眠2分钟 + g_com_map[MOTOR_ENABLE]=1; //震动电机使能 + g_com_map[IMU_ENABLE]=1; //静止休眠使能 g_com_map[CNT_RESTART]=0; g_com_map[CNT_REBOOT]=0; g_com_map[CNT_UPDATE]=0; g_com_map[MODBUS_MODE]=0; g_com_map[ACTIVE_INDEX]=0; - g_com_map[STATIONARY_TIME]=20; + g_com_map[STATIONARY_TIME]=20; //静止判定时间20秒 g_com_map[HEIGHTOFFEST_INDEX]=0; save_com_map_to_flash(); } -- Gitblit v1.9.3