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