From 21defa260286f0a4b221db7a4448645a0aee16e3 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Tue, 13 Oct 2026 16:08:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=81=97=E6=BC=8F=E7=9A=84=E8=A3=81?= =?UTF-8?q?=E5=89=AA=E5=AE=8F=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bspMCU/include/w25qxx.h | 3 ++- bspMCU/w25qxx.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bspMCU/include/w25qxx.h b/bspMCU/include/w25qxx.h index c7e3d95..cee7b8f 100644 --- a/bspMCU/include/w25qxx.h +++ b/bspMCU/include/w25qxx.h @@ -1,7 +1,7 @@ #ifndef __W25QXX_H #define __W25QXX_H #include "common.h" - +#ifdef USE_W25QXX /* =========================================================================== * W25QXX 传输层选择宏 * --------------------------------------------------------------------------- @@ -94,3 +94,4 @@ void W25QXX_WAKEUP(void); #endif #endif /* __W25QXX_H */ +#endif diff --git a/bspMCU/w25qxx.c b/bspMCU/w25qxx.c index 85b7f42..a2263d4 100644 --- a/bspMCU/w25qxx.c +++ b/bspMCU/w25qxx.c @@ -21,7 +21,7 @@ ****************************************************************************** */ #include "w25qxx.h" - +#ifdef USE_W25QXX /* 当前芯片型号,默认 W25Q80(两种传输层共用) */ uint16_t W25QXX_TYPE = W25Q80; @@ -743,3 +743,4 @@ void W25QXX_WAKEUP(void) } #endif /* W25QXX_USE_QSPI / W25QXX_USE_SPI */ +#endif From e96acccce6b79d72cc59a11d918ebbeea6eb1075 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Tue, 13 Oct 2026 16:09:21 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E4=B8=BB=E7=BA=BF=E5=BE=85?= =?UTF-8?q?=E5=90=88=E3=80=91=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bspMCU/bsp_uart.c | 19 +++++++++++++++++++ bspMCU/include/bsp_uart.h | 1 + project | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/bspMCU/bsp_uart.c b/bspMCU/bsp_uart.c index 5ef8a64..79dce8c 100644 --- a/bspMCU/bsp_uart.c +++ b/bspMCU/bsp_uart.c @@ -159,4 +159,23 @@ void UART_RX_IRQHandler(TComCtrl *_ptComCtrl) #endif } +void UART_RX_ERRORHandler(TComCtrl *_ptComCtrl) +{ + TUartUserData *ptUartUserData = (TUartUserData *)_ptComCtrl->m_pUserData; + if (NULL == ptUartUserData) return; + /* 先读 RDR,清除残留 RXNE */ + volatile uint32_t dummy = ptUartUserData->m_uart->Instance->RDR; + (void)dummy; + + /* 清除 ORE 等错误标志 */ + ptUartUserData->m_uart->Instance->ICR = USART_ICR_ORECF | USART_ICR_FECF | USART_ICR_PECF | USART_ICR_NECF; + + /* HAL 发生 ORE 时内部会锁住 huart,必须解锁后 + 才能重新启动 Receive_IT */ + __HAL_UNLOCK(ptUartUserData->m_uart); + + /* 重新启动中断接收 */ + HAL_UART_Receive_IT(ptUartUserData->m_uart, &ptUartUserData->m_temp, 1); +} + #endif diff --git a/bspMCU/include/bsp_uart.h b/bspMCU/include/bsp_uart.h index 3df9c50..dc4ea94 100644 --- a/bspMCU/include/bsp_uart.h +++ b/bspMCU/include/bsp_uart.h @@ -37,6 +37,7 @@ extern TUartUserData *UART_userdata_init(int _iID, int32_t _uiBaudRate, uint32_t extern void UART_IT_init(TComCtrl *_ptComCtrl); extern void UART_DMA_RX_IRQHandler(TComCtrl *_ptComCtrl); extern void UART_RX_IRQHandler(TComCtrl *_ptComCtrl); +extern void UART_RX_ERRORHandler(TComCtrl *_ptComCtrl); #endif #endif /* end of include guard: BSP_UART_H */ diff --git a/project b/project index 86e867c..bb250aa 160000 --- a/project +++ b/project @@ -1 +1 @@ -Subproject commit 86e867c5d8efd261ce78e0ee480771e8b6e8a7f7 +Subproject commit bb250aa22b82811f6f752bb266d19092e6a78b61