From 9e334e88f1d1d7aeb89f38ff72f4ae3dca078762 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期日, 16 三月 2025 16:58:50 +0800
Subject: [PATCH] 外包开发完ntrip,支持shell配置ID,测试ID正常,ntrip正常

---
 keil/include/components/hal/UART.c |   46 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/keil/include/components/hal/UART.c b/keil/include/components/hal/UART.c
index beec20a..b409785 100644
--- a/keil/include/components/hal/UART.c
+++ b/keil/include/components/hal/UART.c
@@ -155,8 +155,8 @@
         .rx_level = UART_RXFIFO_CHAR_1,
         .tx_level = UART_TXFIFO_EMPTY,
         .baud = get_baud(_pstInit->m_u32BaudRate),
-        .dma_en = false,
-        .int_rx = true,
+        .dma_en = true,
+        .int_rx = false,
         .int_tx = false,
     };
 
@@ -168,8 +168,12 @@
     l_astUartInfo[_eUartID].m_u32RxBufSize = _pstInit->m_u32RxBufSize;
     if(UART_RX_MODE_DMA == _pstInit->m_eRxMode)
     {
-        l_astUartInfo[_eUartID].m_pu8RxLastPos= l_astUartInfo[_eUartID].m_pu8RxBuf;
-        l_astUartInfo[_eUartID].m_pu8RxBufEnd = l_astUartInfo[_eUartID].m_pu8RxBuf + l_astUartInfo[_eUartID].m_u32RxBufSize - 1;
+        HIDO_ArraryQueueInit(
+                &l_astUartInfo[_eUartID].m_stRxArraryQueue,
+                _pstInit->m_pu8RxBuf,
+                _pstInit->m_u32RxBufSize,
+                sizeof(HIDO_UINT8));
+       return HIDO_OK;
     }
     else if(UART_RX_MODE_INT == _pstInit->m_eRxMode)
     {
@@ -369,11 +373,16 @@
     osMutexWait(l_astUartInfo[_eUartID].m_mutexLock, osWaitForever);
 #endif
 
-    if (UART_RX_MODE_INT == l_astUartInfo[_eUartID].m_eRxMode)
+    switch(l_astUartInfo[_eUartID].m_eRxMode)
     {
-        if (HIDO_ArraryQueueOut(&l_astUartInfo[_eUartID].m_stRxArraryQueue, _pu8Char) == HIDO_OK)
+        case UART_RX_MODE_INT:
+        case UART_RX_MODE_DMA:
         {
-            i32Result = HIDO_OK;
+            if (HIDO_ArraryQueueOut(&l_astUartInfo[_eUartID].m_stRxArraryQueue, _pu8Char) == HIDO_OK)
+            {
+                i32Result = HIDO_OK;
+            }
+            break;
         }
     }
 
@@ -382,6 +391,20 @@
 #endif
 
     return i32Result;
+}
+
+/*******************************************************************************
+ * Function Name     : Uart_SetChar
+ * Description       :
+ * Input             :
+ * Output            :
+ * Return            :
+ * Author            : 杜键
+ * Modified Date:    : 2018年4月24日
+ *******************************************************************************/
+HIDO_VOID Uart_SetChar(E_UartID _eUartID, HIDO_UINT8 _u8Data)
+{
+    HIDO_ArraryQueueIn(&l_astUartInfo[_eUartID].m_stRxArraryQueue, &_u8Data);
 }
 
 /*******************************************************************************
@@ -461,3 +484,12 @@
 
     return i32Result;
 }
+HIDO_VOID HIDO_Lock(void)
+{
+    int_lock();
+}
+HIDO_VOID HIDO_UnLock(void)
+{
+    uint32_t lock = int_lock();
+    int_unlock(lock);
+}

--
Gitblit v1.9.3