From c6c041533aabed84329be03a296cbe5a85ef6556 Mon Sep 17 00:00:00 2001 From: cfif Date: Tue, 16 Dec 2025 16:49:05 +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 --- SerialPorts.c | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/SerialPorts.c b/SerialPorts.c index 9f3f6da..f21cb12 100644 --- a/SerialPorts.c +++ b/SerialPorts.c @@ -10,14 +10,25 @@ tSerialPorts SERIAL_PORTS; uint8_t buf_USART2_TRANSMITTED[256]; ALIGN(256) uint8_t buf_USART2_DMA[6]; - -static void DMA_USART2_ErrorCallback() { +static void DMA_USART2_ErrorCallbackTx() { while (1) { __asm("nop"); } } -static void DMA_USART2_TransferCompleteCallback() { +static void DMA_USART2_TransferCompleteCallbackTx() { +// DMA_StopChannel(DMA_INSTANCE_0, DMA_CHANNEL_6); + SerialPort_TxEndTransmitted(SERIAL_PORTS.SerialPortLog_IO.env, 1); + asm("nop"); +} + +static void DMA_USART2_ErrorCallbackRx() { + while (1) { + __asm("nop"); + } +} + +static void DMA_USART2_TransferCompleteCallbackRx() { ++SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF; // SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, buf_USART2_DMA); @@ -115,19 +126,30 @@ static void vSerialPort_InitUSART2(tSerialPortFlagchip *env) { DMA_CHANNEL_5, DMA_REQ_FCUART2_RX, - buf_USART2_DMA, sizeof(buf_USART2_DMA), - DMA5_IRQn, 0xFF, // IRQ_DMA_PRIORITY DMA5_IRQn, // IRQ_DMA_CHANNEL_PRIORITY + DMA_CHANNEL_6, + DMA_REQ_FCUART2_TX, + buf_USART2_DMA, + sizeof(buf_USART2_DMA), + DMA6_IRQn, + 0xFF, // IRQ_DMA_PRIORITY + DMA6_IRQn, // IRQ_DMA_CHANNEL_PRIORITY + + 1024, 0, - DMA_USART2_TransferCompleteCallback, - DMA_USART2_ErrorCallback, + DMA_USART2_TransferCompleteCallbackRx, + NULL, + + DMA_USART2_TransferCompleteCallbackTx, + NULL, + FCUART_IldeInterrupt_CallBack, FCUART_ErrorInterrupt_CallBack,