From 4be9f00578cbfd72ea94f56c7353a2d3ce92ec77 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 27 三月 2025 18:03:25 +0800
Subject: [PATCH] ota升级开发完成

---
 keil/include/drivers/DBG.c |   92 +++++++++++++++++++++++++++++-----------------
 1 files changed, 58 insertions(+), 34 deletions(-)

diff --git a/keil/include/drivers/DBG.c b/keil/include/drivers/DBG.c
index 11aee52..c4e2994 100644
--- a/keil/include/drivers/DBG.c
+++ b/keil/include/drivers/DBG.c
@@ -25,8 +25,8 @@
  *                                  Macro                                      *
  *******************************************************************************/
 #define OUTPUT_BUF_SIZE                         512
-#define DBG_UART_RX_BUF_SIZE                    256
-#define DBG_UART_TX_BUF_SIZE                    (1024*2)
+#define DBG_UART_RX_BUF_SIZE                    128
+#define DBG_UART_TX_BUF_SIZE                    128
 #define DBG_UART_TX_QUEUE_MEMBER_CNT            64
 
 /*******************************************************************************
@@ -66,7 +66,7 @@
  *******************************************************************************/
 static HIDO_INT32 DBG_SerialGetChar(HIDO_UINT8 *_pu8Char)
 {
-    return Uart_GetChar(UART_ID_DBG, _pu8Char);
+    return Uart_GetChar(UART_ID_DBG_GPS, _pu8Char);
 }
 
 /*******************************************************************************
@@ -80,6 +80,10 @@
  *******************************************************************************/
 static HIDO_INT32 DBG_SerialPrintf(const HIDO_CHAR *_pcFmt, ...)
 {
+    if(DBG_GetMode() != DBG_MODE_SHELL)
+    {
+        return HIDO_OK;
+    }
     va_list ap;
     HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
 
@@ -87,7 +91,7 @@
     vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
     va_end(ap);
 
-    return Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
+    return Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
 }
 
 /*******************************************************************************
@@ -102,9 +106,13 @@
  *******************************************************************************/
 static HIDO_INT32 DBG_SerialPutString(const char *_pcString)
 {
+    if(DBG_GetMode() != DBG_MODE_SHELL)
+    {
+        return HIDO_OK;
+    }
     HIDO_INT32 s32Ret = 0;
 
-    s32Ret = Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) _pcString, strlen(_pcString));
+    s32Ret = Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) _pcString, strlen(_pcString));
 
     return s32Ret;
 }
@@ -121,9 +129,13 @@
  *******************************************************************************/
 static HIDO_INT32 DBG_SerialPutChar(HIDO_UINT8 _u8Char)
 {
+    if(DBG_GetMode() != DBG_MODE_SHELL)
+    {
+        return HIDO_OK;
+    }
     HIDO_INT32 s32Ret = 0;
 
-    s32Ret = Uart_Send(UART_ID_DBG, &_u8Char, 1);
+    s32Ret = Uart_Send(UART_ID_DBG_GPS, &_u8Char, 1);
 
     return s32Ret;
 }
@@ -160,12 +172,16 @@
         u32Len = sizeof(acOutputBuf) - 1;
     }
 
-    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
+    Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
     
     return HIDO_OK;
 }
 HIDO_INT32 HIDO_Debug2(const HIDO_CHAR *_pcFmt, ...)
 {
+    if(DBG_GetMode() != DBG_MODE_SHELL)
+    {
+        return HIDO_OK;
+    }
     va_list ap;
     HIDO_CHAR acOutputBuf[OUTPUT_BUF_SIZE];
     HIDO_UINT32 u32Len = 0;
@@ -179,7 +195,7 @@
         u32Len = sizeof(acOutputBuf) - 1;
     }
 
-    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
+    Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
     
     return HIDO_OK;
 }
@@ -211,7 +227,7 @@
 //            stRTCDateTime.m_u16Year, stRTCDateTime.m_u8Month, stRTCDateTime.m_u8Day, stRTCDateTime.m_u8Hour,
 //            stRTCDateTime.m_u8Min, stRTCDateTime.m_u8Sec, HAL_GetTick() % 1000);
 //    
-    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
+    Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
 
     va_start(ap, _pcFmt);
     u32Len = vsnprintf(acOutputBuf, sizeof(acOutputBuf), _pcFmt, ap);
@@ -222,7 +238,7 @@
         u32Len = sizeof(acOutputBuf) - 1;
     }
 
-    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
+    Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
     
     return HIDO_OK;
 }
@@ -265,7 +281,7 @@
         memset(acOutputBuf, 0, sizeof(acOutputBuf));
         HIDO_UtilByteArrayToHexString(_pu8Data, u32Len, acOutputBuf, sizeof(acOutputBuf), HIDO_TRUE);
         strcat(acOutputBuf, "\r\n");
-        Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
+        Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, strlen(acOutputBuf));
 
         _u32Len -= u32Len;
         _pu8Data += u32Len;
@@ -302,9 +318,9 @@
             stRTCDateTime.m_u16Year, stRTCDateTime.m_u8Month, stRTCDateTime.m_u8Day, stRTCDateTime.m_u8Hour,
             stRTCDateTime.m_u8Min, stRTCDateTime.m_u8Sec, HAL_GetTick() % 1000);
     
-    Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) acOutputBuf, u32Len);
+    Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) acOutputBuf, u32Len);
 #endif
-    return Uart_Send(UART_ID_DBG, (HIDO_UINT8 *) _pu8String, _u32StringLen);
+    return Uart_Send(UART_ID_DBG_GPS, (HIDO_UINT8 *) _pu8String, _u32StringLen);
 }
 
 /*******************************************************************************
@@ -348,6 +364,11 @@
  *******************************************************************************/
 E_DBGMode DBG_GetMode(void)
 {
+    if(Get5VState() == 0)
+    {
+        return DBG_MODE_GPS;
+    }
+
     return l_eDBGMode;
 }
 
@@ -368,12 +389,16 @@
     {
         HIDO_InputPoll();
     }
+    else if(DBG_GetMode() == DBG_MODE_GPS)
+    {
+        GPS_Poll();
+    }
     else if(DBG_GetMode() == DBG_MODE_CHARGE)
     {
-         static HIDO_UINT32 l_u32ModeTick = 0;;
+        static HIDO_UINT32 l_u32ModeTick = 0;;
         HIDO_UINT8 u8RecvChar = 0;
-//        UART_HandleTypeDef *pstUartHandle = HIDO_NULL;
-       while (Uart_GetChar(UART_ID_DBG, &u8RecvChar) == HIDO_OK)
+
+        while (Uart_GetChar(UART_ID_DBG_GPS, &u8RecvChar) == HIDO_OK)
         {
             if(u8RecvChar == 0x03)
             {
@@ -395,7 +420,6 @@
                 l_u32ModeTick = 0;
             }
             UsartParseDataHandler(u8RecvChar);
-           // HAL_UART_Transmit(pstUartHandle, &u8RecvChar, 1, 1000);
         }
     }
 }
@@ -412,27 +436,27 @@
  *******************************************************************************/
 HIDO_VOID DBG_Init(void)
 {
-//    ST_UartInit stInit;
-//    
-//    memset(&stInit, 0, sizeof(stInit));
-//    stInit.m_eRxMode = UART_RX_MODE_DMA;
-//#if DBG_TX_DMA
-//    stInit.m_eTxMode = UART_TX_MODE_DMA;
-//#else
-//    stInit.m_eTxMode = UART_TX_MODE_POLL;
-//#endif
-//    stInit.m_pu8RxBuf = l_au8DBGUartRxBuf;
-//    stInit.m_u32RxBufSize = DBG_UART_RX_BUF_SIZE;
-//#if DBG_TX_DMA
-//    stInit.m_pu8TxBuf = l_au8DBGUartTxBuf;
-//#endif
-//    stInit.m_u32TxBufSize = DBG_UART_TX_BUF_SIZE;
-//    stInit.m_u32TxQueueMemberCnt = DBG_UART_TX_QUEUE_MEMBER_CNT;
-//    Uart_Init(UART_ID_DBG, &stInit);
+    ST_UartInit stUartInit;
+
+    // 调试串口逻辑上的初始化,并不是真正意义的硬件初始化,为了适配UART.c接口
+    stUartInit.m_eRxMode = UART_RX_MODE_DMA; //没有具体意义,就韦了适配接口
+    stUartInit.m_eTxMode = UART_TX_MODE_POLL; //没有具体意义,就韦了适配接口
+    stUartInit.m_pu8RxBuf = l_au8DBGUartRxBuf;
+    stUartInit.m_u32RxBufSize = DBG_UART_RX_BUF_SIZE;
+    stUartInit.m_pu8TxBuf = HIDO_NULL;
+    stUartInit.m_u32TxBufSize = 0;
+    stUartInit.m_u32TxQueueMemberCnt = 0;
+    stUartInit.m_u32BaudRate = 115200;
+    if(Uart_Init(UART_ID_DBG_GPS, &stUartInit) != HIDO_OK)
+    {
+        return;
+    }
 
     l_stSerialInput.m_fnPrintf = DBG_SerialPrintf;
     l_stSerialInput.m_fnGetc = DBG_SerialGetChar;
     l_stSerialInput.m_fnPutc = DBG_SerialPutChar;
     l_stSerialInput.m_fnPuts = DBG_SerialPutString;
     HIDO_InputRegister(&l_stSerialInput);
+    
+//    Shell_Init();
 }

--
Gitblit v1.9.3