From 9635c1ec8bab034040f3ada3e5e368a6fb9e5e7a Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期日, 21 一月 2024 18:56:53 +0800
Subject: [PATCH] V1.42 随机时间片

---
 Src/application/serial_at_cmd_app.c |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/Src/application/serial_at_cmd_app.c b/Src/application/serial_at_cmd_app.c
index 996b9e4..562d320 100644
--- a/Src/application/serial_at_cmd_app.c
+++ b/Src/application/serial_at_cmd_app.c
@@ -42,7 +42,38 @@
 	
 	UART_PushFrame(send_frame, data_length+9);	
 }
+void updatecheck(void)
+{
 
+        if(g_com_map[CNT_UPDATE]==1)
+        {
+        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(g_com_map[CNT_REBOOT]==1)
+		{
+            ReturnFactorySettings();
+			save_com_map_to_flash();
+			delay_ms(100);
+			SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
+		}
+		if(g_com_map[CNT_RESTART]==1)
+		{
+				SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
+		}
+}
 void UsartParseDataHandler(uint8_t data)
 {
 	static UsartRecvPackState usart_receive_state = UsartReceiveWaitHead0;
@@ -69,6 +100,7 @@
 				case CMD_WRITE:
 					//从mUsartReceivePack中读取pack_length长度的字节,放到全局变量中
 					memcpy((uint8_t*)&g_com_map + pack_index, mUsartReceivePack, pack_datalen);
+                    updatecheck();
 					//返回一个error状态
 					//SendComMap(pack_datalen,pack_index);
 					save_com_map_to_flash();

--
Gitblit v1.9.3