zhangbo
2025-05-07 fc89f1e7e828ce2045d9744ab4816b30d72e4c22
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);
}
/*******************************************************************************
@@ -91,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));
}
/*******************************************************************************
@@ -112,7 +112,7 @@
    }
    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;
}
@@ -135,7 +135,7 @@
    }
    HIDO_INT32 s32Ret = 0;
    s32Ret = Uart_Send(UART_ID_DBG, &_u8Char, 1);
    s32Ret = Uart_Send(UART_ID_DBG_GPS, &_u8Char, 1);
    return s32Ret;
}
@@ -172,7 +172,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;
}
@@ -195,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;
}
@@ -227,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);
@@ -238,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;
}
@@ -281,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;
@@ -318,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);
}
/*******************************************************************************
@@ -364,6 +364,11 @@
 *******************************************************************************/
E_DBGMode DBG_GetMode(void)
{
    if(Get5VState() == 0)
    {
        return DBG_MODE_GPS;
    }
    return l_eDBGMode;
}
@@ -384,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)
            {
@@ -411,7 +420,6 @@
                l_u32ModeTick = 0;
            }
            UsartParseDataHandler(u8RecvChar);
           // HAL_UART_Transmit(pstUartHandle, &u8RecvChar, 1, 1000);
        }
    }
}
@@ -428,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();
}