Обновление
This commit is contained in:
parent
f01d426402
commit
484e46119a
126
SerialPorts.c
126
SerialPorts.c
|
|
@ -2,7 +2,7 @@
|
|||
// Created by CFIF on 25.03.24.
|
||||
//
|
||||
#include "SerialPorts.h"
|
||||
|
||||
/*
|
||||
tSerialPorts SERIAL_PORTS;
|
||||
|
||||
|
||||
|
|
@ -124,7 +124,129 @@ static void vSerialPort_InitUSART2(tSerialPortFlagchip *env) {
|
|||
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
tSerialPorts SERIAL_PORTS;
|
||||
|
||||
|
||||
uint8_t buf_USART1_TRANSMITTED[256];
|
||||
ALIGN(256) uint8_t buf_USART1_DMA[128];
|
||||
|
||||
|
||||
static void DMA_USART1_TransferCompleteCallbackTx() {
|
||||
SerialPort_TxEndTransmitted(SERIAL_PORTS.SerialPortLog_IO.env, 1);
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
static void DMA_USART1_TransferCompleteCallbackRx() {
|
||||
SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, true,buf_USART1_DMA);
|
||||
}
|
||||
|
||||
static void FCUART_IldeInterrupt_CallBack(uint8_t u8UartIndex) {
|
||||
SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, false,buf_USART1_DMA);
|
||||
PROCESS_UNUSED_VAR(u8UartIndex)
|
||||
}
|
||||
|
||||
static void FCUART_ErrorInterrupt_CallBack(uint8_t u8UartIndex, uint32_t u32Error) {
|
||||
asm("nop");
|
||||
PROCESS_UNUSED_VAR(u8UartIndex)
|
||||
PROCESS_UNUSED_VAR(u32Error)
|
||||
}
|
||||
|
||||
static void FCUART_TxEmptyInterrupt_CallBack(uint8_t u8UartIndex, FCUART_DataType *pTxData) {
|
||||
asm("nop");
|
||||
PROCESS_UNUSED_VAR(u8UartIndex)
|
||||
PROCESS_UNUSED_VAR(pTxData)
|
||||
}
|
||||
|
||||
static void FCUART_TxCompleteInterrupt_CallBack(uint8_t u8UartIndex, FCUART_DataType *pTxData) {
|
||||
|
||||
if (u8UartIndex == SERIAL_PORTS.SerialPortLog.UART_INDEX) {
|
||||
SerialPort_TxEndTransmitted(SERIAL_PORTS.SerialPortLog_IO.env, 1);
|
||||
}
|
||||
|
||||
PROCESS_UNUSED_VAR(pTxData)
|
||||
}
|
||||
|
||||
void FCUART1_RxTx_IRQHandler(void) {
|
||||
FCUARTN_RxTx_IRQHandler(SERIAL_PORTS.SerialPortLog.UART_INDEX);
|
||||
}
|
||||
|
||||
// Настройка порта
|
||||
static void vSerialPort_InitUSART1(tSerialPortFlagchip *env) {
|
||||
PORT_InitType tInitStruct = {0};
|
||||
GPIO_InitType tGpioInitStruct = {0};
|
||||
|
||||
// Port A19: MUX = ALT3, UART1_RX
|
||||
tInitStruct.u32PortPins = PORT_PIN_19;
|
||||
tInitStruct.uPortPinMux.u32PortPinMode = PORTA_19_FCUART1_RX;
|
||||
PORT_InitPins(PORT_A, &tInitStruct);
|
||||
|
||||
tGpioInitStruct.u32GpioPins = GPIO_PIN_19;
|
||||
tGpioInitStruct.ePinDirection = GPIO_IN;
|
||||
GPIO_InitPins(GPIO_A, &tGpioInitStruct);
|
||||
|
||||
// Port A18: MUX = ALT3, UART1_TX
|
||||
tInitStruct.u32PortPins = PORT_PIN_18;
|
||||
tInitStruct.uPortPinMux.u32PortPinMode = PORTA_18_FCUART1_TX;
|
||||
PORT_InitPins(PORT_A, &tInitStruct);
|
||||
|
||||
tGpioInitStruct.u32GpioPins = GPIO_PIN_18;
|
||||
tGpioInitStruct.ePinDirection = GPIO_OUT;
|
||||
tGpioInitStruct.ePinLevel = GPIO_HIGH;
|
||||
GPIO_InitPins(GPIO_A, &tGpioInitStruct);
|
||||
|
||||
vSerialPortInitDMA(
|
||||
env,
|
||||
|
||||
FCUART1,
|
||||
921600,//115200,
|
||||
|
||||
1, // UART0 = 0 ... UART7 = 7
|
||||
FCUART1_IRQn, // FCUART0_IRQn ... FCUART7_IRQn
|
||||
0xFF,
|
||||
|
||||
buf_USART1_TRANSMITTED,
|
||||
sizeof(buf_USART1_TRANSMITTED),
|
||||
|
||||
DMA_CHANNEL_5,
|
||||
DMA_REQ_FCUART1_RX,
|
||||
buf_USART1_DMA,
|
||||
sizeof(buf_USART1_DMA),
|
||||
DMA5_IRQn,
|
||||
0xFF, // IRQ_DMA_PRIORITY
|
||||
DMA5_IRQn, // IRQ_DMA_CHANNEL_PRIORITY
|
||||
|
||||
DMA_CHANNEL_6,
|
||||
DMA_REQ_FCUART1_TX,
|
||||
buf_USART1_DMA,
|
||||
sizeof(buf_USART1_DMA),
|
||||
DMA6_IRQn,
|
||||
0xFF, // IRQ_DMA_PRIORITY
|
||||
DMA6_IRQn, // IRQ_DMA_CHANNEL_PRIORITY
|
||||
|
||||
|
||||
1024,
|
||||
0,
|
||||
|
||||
DMA_USART1_TransferCompleteCallbackRx,
|
||||
NULL,
|
||||
|
||||
DMA_USART1_TransferCompleteCallbackTx,
|
||||
NULL,
|
||||
|
||||
|
||||
FCUART_IldeInterrupt_CallBack,
|
||||
FCUART_ErrorInterrupt_CallBack,
|
||||
|
||||
FCUART_TxEmptyInterrupt_CallBack,
|
||||
FCUART_TxCompleteInterrupt_CallBack
|
||||
|
||||
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
void SerialPorts_Init() {
|
||||
|
||||
tSerialPorts *env = &SERIAL_PORTS;
|
||||
|
|
@ -141,7 +263,7 @@ void SerialPorts_Init() {
|
|||
// env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort);
|
||||
// env->cliVirtualOutIo = SerialPortP2p_GetIoSecond(&env->cliVirtualPort);
|
||||
|
||||
vSerialPort_InitUSART2(&env->SerialPortLog);
|
||||
vSerialPort_InitUSART1(&env->SerialPortLog);
|
||||
SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog);
|
||||
SERIAL_PORTS.SerialPortLog_Sniffer_IO = vSerialPortGetSnifferIo(&env->SerialPortLog);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue