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