From 797fccdda3b17dda578a5e15e59958cd67dd180b Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期一, 13 二月 2023 10:35:36 +0800 Subject: [PATCH] V1.45 V2.12 免布线标签必须搭配免布线基站1.44使用 1.通过4G可以下发标签可以读取和修改免布线基站参数,(看文档$readpara_anchor $writepara_anchor). 2.增加基站频率动态修改功能(基站默认频率1HZ,如果周围标签,则按照频率最高的标签测距,没有标签后30秒变回1hz) 3.修改升级和恢复出厂设置逻辑,只能串口通讯才能触发。 --- Src/application/serial_at_cmd_app.c | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/Src/application/serial_at_cmd_app.c b/Src/application/serial_at_cmd_app.c index 996b9e4..72bfe8d 100644 --- a/Src/application/serial_at_cmd_app.c +++ b/Src/application/serial_at_cmd_app.c @@ -42,7 +42,42 @@ UART_PushFrame(send_frame, data_length+9); } +void UpdateProcess(uint8_t index) +{ + if(index == 2*CNT_UPDATE) + { + uint32_t result = 0; + uint16_t tmp = 0xAAAA; + __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 + } + if(index == 2*CNT_REBOOT) + { + g_com_map[CNT_REBOOT]=0; + g_com_map[MAP_SIGN_INDEX]=0; + save_com_map_to_flash(); + delay_ms(100); + SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + } + if(index == 2*CNT_RESTART) + { + g_com_map[CNT_RESTART]=0; + save_com_map_to_flash(); + delay_ms(100); + SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + } +} void UsartParseDataHandler(uint8_t data) { static UsartRecvPackState usart_receive_state = UsartReceiveWaitHead0; @@ -68,6 +103,8 @@ { case CMD_WRITE: //从mUsartReceivePack中读取pack_length长度的字节,放到全局变量中 + if(mUsartReceivePack[0]==1) + UpdateProcess(pack_index); memcpy((uint8_t*)&g_com_map + pack_index, mUsartReceivePack, pack_datalen); //返回一个error状态 //SendComMap(pack_datalen,pack_index); -- Gitblit v1.9.3