diff --git a/SerialPorts.c b/SerialPorts.c index 57b1701..6be532e 100644 --- a/SerialPorts.c +++ b/SerialPorts.c @@ -7,7 +7,6 @@ tSerialPorts SERIAL_PORTS; - uint8_t buf_USART3_DMA[256]; // IDLE прерывание @@ -55,32 +54,24 @@ static void vSerialPort_InitUSART3(tSerialPortArtery *env) { } - - - - - - - -uint8_t buf_USART2_DMA[100]; - +uint8_t buf_USART2_DMA[256]; // IDLE прерывание void USART2_IRQHandler() { - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.Rs485); + SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.Rs485_USART2); } // RX -void DMA1_Channel6_IRQHandler(void) { - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.Rs485); +void DMA1_Channel7_IRQHandler(void) { + SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.Rs485_USART2); } // TX -void DMA1_Channel7_IRQHandler(void) { - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.Rs485); +void DMA2_Channel7_IRQHandler(void) { + SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.Rs485_USART2); } -// Настройка порта PRO04 +// Настройка порта static void vSerialPort_InitUSART2(tSerialPortArtery *env) { gpio_init_type GPIO_InitStruct; @@ -98,7 +89,7 @@ static void vSerialPort_InitUSART2(tSerialPortArtery *env) { vSerialPortInitDmaWithNameAndSniffer( env, USART2, 115200, - 1, 6, 1, 7, + 1, 7, 2, 7, false, 0xFF, buf_USART2_DMA, sizeof(buf_USART2_DMA), 1024, 0 @@ -106,494 +97,89 @@ static void vSerialPort_InitUSART2(tSerialPortArtery *env) { } - - - - - - - - - - - - - /* -uint8_t buf_USART3_DMA[256]; +uint8_t buf_UART4_DMA[256]; // IDLE прерывание -void USART3_IRQHandler() { - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.Rs485); +void USART4_IRQHandler() { + SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.LIN1_UART4); } // RX void DMA1_Channel3_IRQHandler(void) { - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.Rs485); + SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.LIN1_UART4); } // TX void DMA1_Channel4_IRQHandler(void) { - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.Rs485); -} - -// Настройка порта -static void vSerialPort_InitUSART3(tSerialPortArtery *env) { - - gpio_init_type GPIO_InitStruct; - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE10, GPIO_MUX_7); - gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE11, GPIO_MUX_7); - - vSerialPortInitDmaWithNameAndSniffer( - env, USART3, 115200, - 1, 3, 1, 4, - false, 0xFF, - buf_USART3_DMA, sizeof(buf_USART3_DMA), - 256, 256 - ); - -} - - - - - - - - - -uint8_t buf_USART5_DMA[256]; - -// IDLE прерывание -void UART5_IRQHandler() { - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.Rs232); -} - -// RX -void DMA1_Channel1_IRQHandler(void) { - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.Rs232); -} - -// TX -void DMA1_Channel2_IRQHandler(void) { - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.Rs232); -} - -// Настройка порта -static void vSerialPort_InitUSART5(tSerialPortArtery *env) { - - gpio_init_type GPIO_InitStruct; - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_12; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &GPIO_InitStruct); - - GPIO_InitStruct.gpio_pins = GPIO_PINS_2; - gpio_init(GPIOD, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE12, GPIO_MUX_8); - gpio_pin_mux_config(GPIOD, GPIO_PINS_SOURCE2, GPIO_MUX_8); - - vSerialPortInitDmaWithNameAndSniffer( - env, UART5, 921600, - 1, 1, 1, 2, - false, 0xFF, - buf_USART5_DMA, sizeof(buf_USART5_DMA), - 1024, 0 - ); - + SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.LIN1_UART4); } */ +void UART4_IRQHandler(void) { + SerialPort_IrqProcessing_UartLin(&SERIAL_PORTS.LIN1_UART4); +} +// Настройка порта +static void vSerialPort_InitUSART4(tSerialPortArtery *env) { + gpio_init_type GPIO_InitStruct; + gpio_default_para_init(&GPIO_InitStruct); + GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; + GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; + GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; + GPIO_InitStruct.gpio_pins = GPIO_PINS_1; + GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; + gpio_init(GPIOA, &GPIO_InitStruct); + GPIO_InitStruct.gpio_pins = GPIO_PINS_0; + gpio_init(GPIOA, &GPIO_InitStruct); - - - - + gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE1, GPIO_MUX_8); + gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE0, GPIO_MUX_8); /* -//начало------------------------------------Радиомодуль----------------------------------------------------------------- -//начало------------------------------------Радиомодуль----------------------------------------------------------------- -//начало------------------------------------Радиомодуль----------------------------------------------------------------- - -//void USART3_IRQHandler() { -// vSerialPortIrqProcessing(&SERIAL_PORTS.GONEC1); -//} - -uint8_t buf_USART3_DMA[3200]; - -// IDLE прерывание -void USART3_IRQHandler() { - // Смотрим idle прерывание -// if (usart_flag_get(SERIAL_PORTS.MBEE.uart, USART_IDLEF_FLAG)) { -// // Сброс прерывания -// usart_data_receive(SERIAL_PORTS.MBEE.uart); -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.MBEE, SERIAL_PORTS.MBEE.dma_rx_init_struct.buffer_size - -// SERIAL_PORTS.MBEE.dma_channel->dtcnt); -// -// } - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.MBEE); -} - -// RX -void DMA1_Channel3_IRQHandler(void) { -// if (dma_flag_get(DMA1_FDT3_FLAG)) { -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.MBEE, -// SERIAL_PORTS.MBEE.dma_rx_init_struct.buffer_size); -// SERIAL_PORTS.MBEE.offset = 0; -// dma_flag_clear(DMA1_FDT3_FLAG); -// } - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.MBEE); -} - -// TX -void DMA1_Channel4_IRQHandler(void) { -// if (dma_flag_get(DMA1_FDT4_FLAG)) { -// dma_flag_clear(DMA1_FDT4_FLAG); -//// osMutexRelease(SERIAL_PORTS.GONEC1.dmaAccess); -// } - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.MBEE); -} - -// Настройка порта радиомодуля -static void vSerialPort_InitUSART3(tSerialPortArtery *env) { - gpio_init_type GPIO_InitStruct; - - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_10 | GPIO_PINS_11; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOB, &GPIO_InitStruct); - -// GPIO_InitStruct.gpio_pull = GPIO_PULL_DOWN; - GPIO_InitStruct.gpio_pins = GPIO_PINS_14; - gpio_init(GPIOB, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE10, GPIO_MUX_7); - gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE11, GPIO_MUX_7); - - gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE14, GPIO_MUX_7); -// gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE13, GPIO_MUX_8); - -// vSerialPortInitNameWithSniffer(env, USART3, true, 115200, 0x55, 1024, 1024); -// env->dmaAccess = osMutexNew(NULL); - - -// vSerialPortInitDMAName(env, USART3, DMA1, -// DMA1_CHANNEL3, DMA1MUX_CHANNEL3, DMAMUX_DMAREQ_ID_USART3_RX, DMA1_Channel3_IRQn, -// DMA1_FDT3_FLAG, -// buf_USART3_DMA, sizeof(buf_USART3_DMA), -// DMA1_CHANNEL4, DMA1MUX_CHANNEL4, DMAMUX_DMAREQ_ID_USART3_TX, DMA1_Channel4_IRQn, -// DMA1_FDT4_FLAG, -// false, 9600, 0x59, 3200); - - - vSerialPortInitDmaExtWithNameAndSniffer( - env, USART3, 9600, + vSerialPortInitDmaWithNameAndSniffer( + env, UART4, 9600, 1, 3, 1, 4, - false, USART_HARDWARE_FLOW_RTS, 0x59, - buf_USART3_DMA, sizeof(buf_USART3_DMA), - 3200, 0 - ); - - -} - -void SerialMBEEInit(tSerialPorts *env, uint32_t bt) { - vSerialPortInitDmaExtWithNameAndSniffer( - &env->MBEE, USART3, bt, - 1, 3, 1, 4, - false, USART_HARDWARE_FLOW_RTS, 0x59, - buf_USART3_DMA, sizeof(buf_USART3_DMA), - 3200, 0 - ); - - -} - -//конец-------------------------------------Радиомодуль----------------------------------------------------------------- -//конец-------------------------------------Радиомодуль----------------------------------------------------------------- -//конец-------------------------------------Радиомодуль----------------------------------------------------------------- - - -//начало-------------------------------------ГНСС----------------------------------------------------------------------- -//начало-------------------------------------ГНСС----------------------------------------------------------------------- -//начало-------------------------------------ГНСС----------------------------------------------------------------------- -uint8_t buf_USART2_DMA[100]; - -//void USART2_IRQHandler() { -// vSerialPortIrqProcessing(&SERIAL_PORTS.PRO04); -//} - - -// IDLE прерывание -void USART2_IRQHandler() { - // Смотрим idle прерывание -// if (usart_flag_get(SERIAL_PORTS.PRO04.uart, USART_IDLEF_FLAG)) { -// // Сброс прерывания -// usart_data_receive(SERIAL_PORTS.PRO04.uart); -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.PRO04, SERIAL_PORTS.PRO04.dma_rx_init_struct.buffer_size - -// SERIAL_PORTS.PRO04.dma_channel->dtcnt); -// -// } - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.PRO04); -} - - -// RX -void DMA1_Channel6_IRQHandler(void) { -// if (dma_flag_get(DMA1_FDT6_FLAG)) { -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.PRO04, -// SERIAL_PORTS.PRO04.dma_rx_init_struct.buffer_size); -// SERIAL_PORTS.PRO04.offset = 0; -// dma_flag_clear(DMA1_FDT6_FLAG); -// } - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.PRO04); -} - -// TX -void DMA1_Channel7_IRQHandler(void) { -// if (dma_flag_get(DMA1_FDT7_FLAG)) { -// dma_flag_clear(DMA1_FDT7_FLAG); -// osMutexRelease(SERIAL_PORTS.PRO04.dmaAccess); -// } - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.PRO04); -} - -// Настройка порта PRO04 -static void vSerialPort_InitUSART2(tSerialPortArtery *env) { - gpio_init_type GPIO_InitStruct; - - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_2 | GPIO_PINS_3; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE2, GPIO_MUX_7); - gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE3, GPIO_MUX_7); - -// vSerialPortInitName(env, USART2, false, 115200, 0xFF, 256); -// env->dmaAccess = osMutexNew(NULL); - -// vSerialPortInitDMAName(env, USART2, DMA1, -// DMA1_CHANNEL6, DMA1MUX_CHANNEL6, DMAMUX_DMAREQ_ID_USART2_RX, DMA1_Channel6_IRQn, -// DMA1_FDT6_FLAG, -// buf_USART2_DMA, sizeof(buf_USART2_DMA), -// DMA1_CHANNEL7, DMA1MUX_CHANNEL7, DMAMUX_DMAREQ_ID_USART2_TX, DMA1_Channel7_IRQn, -// DMA1_FDT7_FLAG, -// false, 115200, 0xFF, 256); - - vSerialPortInitDmaWithNameAndSniffer( - env, USART2, 115200, - 1, 6, 1, 7, false, 0xFF, - buf_USART2_DMA, sizeof(buf_USART2_DMA), - 256, 256 + buf_UART4_DMA, sizeof(buf_UART4_DMA), + 256, 0 ); - } -//конец--------------------------------------ГНСС----------------------------------------------------------------------- -//конец--------------------------------------ГНСС----------------------------------------------------------------------- -//конец--------------------------------------ГНСС----------------------------------------------------------------------- - - -//начало-------------------------------------Модем----------------------------------------------------------------------- -//начало-------------------------------------Модем----------------------------------------------------------------------- -//начало-------------------------------------Модем----------------------------------------------------------------------- -uint8_t buf_USART1_DMA[2048]; - -//void USART1_IRQHandler() { -// vSerialPortIrqProcessing(&SERIAL_PORTS.GSM); -//} - - -// IDLE прерывание -void USART1_IRQHandler() { - - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.GSM); - // Смотрим idle прерывание -// if (usart_flag_get(SERIAL_PORTS.GSM.uart, USART_IDLEF_FLAG)) { -// // Сброс прерывания -// usart_data_receive(SERIAL_PORTS.GSM.uart); -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.PRO04, SERIAL_PORTS.GSM.dma_rx_init_struct.buffer_size - -// SERIAL_PORTS.GSM.dma_channel->dtcnt); -// -// } -} - - -// RX -void DMA1_Channel1_IRQHandler(void) { - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.GSM); - - // if (dma_flag_get(DMA1_FDT1_FLAG)) { -// -// vSerialPortIrqProcessingDMAloop(&SERIAL_PORTS.GSM, -// SERIAL_PORTS.GSM.dma_rx_init_struct.buffer_size); -// SERIAL_PORTS.GSM.offset = 0; -// dma_flag_clear(DMA1_FDT1_FLAG); -// } -} - -// TX -void DMA1_Channel2_IRQHandler(void) { - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.GSM); -// - // if (dma_flag_get(DMA1_FDT2_FLAG)) { -// dma_flag_clear(DMA1_FDT2_FLAG); -//// osMutexRelease(SERIAL_PORTS.PRO04.dmaAccess); -// } -} - -// Настройка порта GSM -static void vSerialPort_InitUSART1(tSerialPortArtery *env) { - gpio_init_type GPIO_InitStruct; - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_10; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOA, &GPIO_InitStruct); - - GPIO_InitStruct.gpio_pins = GPIO_PINS_6; - gpio_init(GPIOB, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOA, GPIO_PINS_SOURCE10, GPIO_MUX_7); - gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_7); - -// vSerialPortInitName(env, USART1, false, 115200, 0xFF, 256); -// env->dmaAccess = osMutexNew(NULL); - - vSerialPortInitDmaWithNameAndSniffer( - env, USART1, 115200, - 1, 1, 1, 2, - false, 0xFF, - buf_USART1_DMA, sizeof(buf_USART1_DMA), - 1024, 1024 - ); - -// vSerialPortInitDMAName(env, USART1, DMA1, -// DMA1_CHANNEL1, DMA1MUX_CHANNEL1, DMAMUX_DMAREQ_ID_USART1_RX, DMA1_Channel1_IRQn, -// DMA1_FDT1_FLAG, -// buf_USART1_DMA, sizeof(buf_USART1_DMA), -// DMA1_CHANNEL2, DMA1MUX_CHANNEL2, DMAMUX_DMAREQ_ID_USART1_TX, DMA1_Channel2_IRQn, -// DMA1_FDT2_FLAG, -// false, 115200, 0xFF, 256); - -} -//конец--------------------------------------Модем----------------------------------------------------------------------- -//конец--------------------------------------Модем----------------------------------------------------------------------- -//конец--------------------------------------Модем----------------------------------------------------------------------- - - -//начало--------------------------------Командный интерфейс-------------------------------------------------------------- -//начало--------------------------------Командный интерфейс-------------------------------------------------------------- -//начало--------------------------------Командный интерфейс-------------------------------------------------------------- - -uint8_t buf_USART6_DMA[512]; - -//void USART1_IRQHandler() { -// vSerialPortIrqProcessing(&SERIAL_PORTS.GSM); -//} - - -// IDLE прерывание -void USART6_IRQHandler() { - SerialPort_IrqProcessing_UartIdle(&SERIAL_PORTS.ComInt); -} - - -// RX -void DMA2_Channel1_IRQHandler(void) { - SerialPort_IrqProcessing_DmaRxLoop(&SERIAL_PORTS.ComInt); -} - -// TX -void DMA2_Channel2_IRQHandler(void) { - SerialPort_IrqProcessing_DmaTx(&SERIAL_PORTS.ComInt); -} - -// Настройка порта командного интерфейса -static void vSerialPort_InitUSART6(tSerialPortArtery *env) { - gpio_init_type GPIO_InitStruct; - gpio_default_para_init(&GPIO_InitStruct); - - GPIO_InitStruct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER; - GPIO_InitStruct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL; - GPIO_InitStruct.gpio_mode = GPIO_MODE_MUX; - GPIO_InitStruct.gpio_pins = GPIO_PINS_6 | GPIO_PINS_7; - GPIO_InitStruct.gpio_pull = GPIO_PULL_NONE; - gpio_init(GPIOC, &GPIO_InitStruct); - - gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE6, GPIO_MUX_8); - gpio_pin_mux_config(GPIOC, GPIO_PINS_SOURCE7, GPIO_MUX_8); - - vSerialPortInitDmaWithNameAndSniffer( - env, USART6, 115200, - 2, 1, 2, 2, - false, 0xFF, - buf_USART6_DMA, sizeof(buf_USART6_DMA), - 1024, 0 - ); - -// vSerialPortInitDMAName(env, USART1, DMA1, -// DMA1_CHANNEL1, DMA1MUX_CHANNEL1, DMAMUX_DMAREQ_ID_USART1_RX, DMA1_Channel1_IRQn, -// DMA1_FDT1_FLAG, -// buf_USART1_DMA, sizeof(buf_USART1_DMA), -// DMA1_CHANNEL2, DMA1MUX_CHANNEL2, DMAMUX_DMAREQ_ID_USART1_TX, DMA1_Channel2_IRQn, -// DMA1_FDT2_FLAG, -// false, 115200, 0xFF, 256); - -} -//конец---------------------------------Командный интерфейс-------------------------------------------------------------- -//конец---------------------------------Командный интерфейс-------------------------------------------------------------- -//конец---------------------------------Командный интерфейс-------------------------------------------------------------- */ + vSerialPortLinInit( + env, + UART4, + false, + 9600, + UART4_IRQn, + CRM_UART4_PERIPH_CLOCK, + 0xFF, + 16, + 0 + ); +} + void SerialPorts_Init(tRs485DirectionPins *directionPins) { tSerialPorts *env = &SERIAL_PORTS; + // LIN5 + vSerialPort_InitUSART4(&env->LIN1_UART4); + SERIAL_PORTS.LIN1_UART4_IO = vSerialPortGetIo(&SERIAL_PORTS.LIN1_UART4); + + vSerialPort_InitUSART3(&env->DEBUG_USART3); SERIAL_PORTS.DEBUG_USART3_IO = vSerialPortGetIo(&SERIAL_PORTS.DEBUG_USART3); - vSerialPort_InitUSART2(&env->Rs485); - SERIAL_PORTS.Rs485_IO = vSerialPortGetIo(&SERIAL_PORTS.Rs485); - SERIAL_PORTS.Rs485_HalfDuplex = vSerialPortHalfDuplexInit(&SERIAL_PORTS.Rs485_IO, - &directionPins->transmit, - &directionPins->receive); - SERIAL_PORTS.Rs485_HalfDuplexIo = vSerialPortHalfDuplexGetIo(&SERIAL_PORTS.Rs485_HalfDuplex); - + vSerialPort_InitUSART2(&env->Rs485_USART2); + SERIAL_PORTS.Rs485_USART2_IO = vSerialPortGetIo(&SERIAL_PORTS.Rs485_USART2); + SERIAL_PORTS.Rs485_USART2_HalfDuplex = vSerialPortHalfDuplexInit(&SERIAL_PORTS.Rs485_USART2_IO, + &directionPins->transmit, + &directionPins->receive); + SERIAL_PORTS.Rs485_USART2_HalfDuplexIo = vSerialPortHalfDuplexGetIo(&SERIAL_PORTS.Rs485_USART2_HalfDuplex); SerialPortVirt_Init(&env->cliVirtualPortOut, 4096); diff --git a/SerialPorts.h b/SerialPorts.h index 4665be7..914999e 100644 --- a/SerialPorts.h +++ b/SerialPorts.h @@ -26,14 +26,33 @@ typedef struct { // tSerialPortArtery Rs232; // tSerialPortIO Rs232_IO; + + tSerialPortArtery LIN1_UART4; + tSerialPortIO LIN1_UART4_IO; +/* + tSerialPortArtery LIN2_UART5; + tSerialPortIO LIN2_UART5_IO; + + tSerialPortArtery LIN3_USART6; + tSerialPortIO LIN3_USART6_IO; + + tSerialPortArtery LIN4_UART7; + tSerialPortIO LIN4_UART7_IO; + + tSerialPortArtery LIN5_UART8; + tSerialPortIO LIN5_UART8_IO; + + tSerialPortArtery LIN6_USART1; + tSerialPortIO LIN6_USART1_IO; +*/ tSerialPortArtery DEBUG_USART3; tSerialPortIO DEBUG_USART3_IO; + tSerialPortArtery Rs485_USART2; + tSerialPortIO Rs485_USART2_IO; + tSerialPortHalfDuplex Rs485_USART2_HalfDuplex; + tSerialPortIO Rs485_USART2_HalfDuplexIo; - tSerialPortArtery Rs485; - tSerialPortIO Rs485_IO; - tSerialPortHalfDuplex Rs485_HalfDuplex; - tSerialPortIO Rs485_HalfDuplexIo; /* *