From 1ddadc394a5ebfcdc33db60b2bd59efc414d139a Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 13 Oct 2025 13:47:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/SerialPortFlagchip.h | 1 - Src/SerialPortFlagchip.c | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Inc/SerialPortFlagchip.h b/Inc/SerialPortFlagchip.h index b3a1439..ba5ceea 100644 --- a/Inc/SerialPortFlagchip.h +++ b/Inc/SerialPortFlagchip.h @@ -49,7 +49,6 @@ void vSerialPortInitDMA( tSerialPortFlagchip *env, FCUART_Type *uart, - PCC_ClkSrcType uartClock, uint32_t BoundRate, uint8 UART_INDEX, // UART0 = 0 ... UART7 = 7 diff --git a/Src/SerialPortFlagchip.c b/Src/SerialPortFlagchip.c index 53fd3d2..d12589a 100644 --- a/Src/SerialPortFlagchip.c +++ b/Src/SerialPortFlagchip.c @@ -6,11 +6,22 @@ #include "string.h" +static const PCC_ClkSrcType s_ePccUartTable[] = + { + PCC_CLK_FCUART0, + PCC_CLK_FCUART1, + PCC_CLK_FCUART2, + PCC_CLK_FCUART3, + PCC_CLK_FCUART4, + PCC_CLK_FCUART5, + PCC_CLK_FCUART6, + PCC_CLK_FCUART7 + }; + void vSerialPortInitDMA( tSerialPortFlagchip *env, FCUART_Type *uart, - PCC_ClkSrcType uartClock, uint32_t BoundRate, uint8 UART_INDEX, // UART0 = 0 ... UART7 = 7 @@ -59,15 +70,6 @@ void vSerialPortInitDMA( FCUART_InitMemory(UART_INDEX); - PCC_CtrlType bSP_PCC_Config; - - bSP_PCC_Config.eClockName = uartClock; - bSP_PCC_Config.bEn = true; - bSP_PCC_Config.eClkSrc = PCC_CLKGATE_SRC_FOSCDIV; - bSP_PCC_Config.eDivider = PCC_CLK_DIV_BY1; - - PCC_SetPcc(&bSP_PCC_Config); - env->dmaInitCfg.eArbitrationAlgorithm = DMA_ARBITRATION_ALGORITHM_FIXED_PRIORITY; env->dmaInitCfg.bHaltOnError = false; @@ -113,7 +115,7 @@ void vSerialPortInitDMA( FCUART_ErrorType tRetVal; uint32_t u32PccFuncClk; - u32PccFuncClk = PCC_GetPccFunctionClock(uartClock); + u32PccFuncClk = PCC_GetPccFunctionClock(s_ePccUartTable[UART_INDEX]); if (u32PccFuncClk != 0U) { env->tInitCfg.bEnRxFullDma = true; // UART receiver full DMA disable