/* @Created by VECMOCON Technology * @Date - 26 feb 2024 * TODO - To enable the not define function please go through the project properties --> under the arm complier --> predefine symbols * @ add (_N) at the end of definition to not define * @ Remove (_N) from the end of definition to define * @ Content added by AS - MCAL function for ADC, ADC with DMA, Periodic Timer, PWM, SysTick and Input Capture */ #include "../utils/utils.h" #include "../Core/Include/gpio.h" #include "../Core/Include/ivec_mcal_adc_dma.h" #include "../Core/Include/ivec_mcal_timer.h" #include "../Core/Include/ivec_mcal_mcan.h" #include "../Core/Include/ivec_mcal_spi.h" #include "../Core/Include/ivec_mcal_i2c.h" #include "../Core/Include/ivec_mcal_uart.h" #include "NOR_FLASH/nor_flash.h" #include "ti_msp_dl_config.h" #include "string.h" #include "ivec_cmplx_queue.h" #include "../ivec_ECU/ivec_ecu_uart/inc/ivec_ecu_uart.h" #include "../ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h" #define BUFFER_SIZE 100U unsigned char pucData; xCoreStatus_t xStatus1; DL_MCAN_RxBufElement RxMsg; flashStatus_t ret_UID,ret_MID; uint8_t RxData; McalUartHandle_s prvUartHandle; static volatile int count = 0; uint32_t g_uartSpeed = 0; uint16_t g_canSpeed = 0; void UARTDataProcess() { PacketRetCode_t retCode = PACKET_FAIL; uint8_t pucBuf[MAX_PACKET_LENGTH] = {0}; uint32_t ulId = 0xffffffff; retCode= xECU_ReadCANDataOverUART(&prvUartHandle,pucBuf,&ulId); if(retCode > -1) { if(ulId == 0x00) { //vECU_InitiateUartToCanTransmit(&prvUartHandle, ulId, pucBuf, 0); uint32_t baudrate = 0; uint8_t mode = pucBuf[PKT_HEADER]; memcpy(&baudrate, &pucBuf[PKT_HEADER+1], (uint32_t)retCode); vECU_InitiateUartToCanTransmit(&prvUartHandle, ulId, pucBuf, 0); if( mode == 0 ) { g_uartSpeed = baudrate; xECU_UARTReInit(&prvUartHandle, g_uartSpeed); } else if( mode == 1 ) { g_canSpeed = (uint16_t)baudrate; xECU_CanReInit(CANFD0, g_canSpeed); } } else{ xECU_WriteDataOverCAN(pucBuf, ulId, retCode, 0); } } } void CANDataProcess() { IVEC_EcuCommonErr_e retCode = commonECU_FAIL; can_buff_t xBuff = { 0x00 }; retCode = xECU_CANGetData(&xBuff); if(retCode == commonECU_SUCCESS) { vECU_InitiateUartToCanTransmit(&prvUartHandle, (uint32_t)xBuff.id, (uint8_t*)&xBuff.data[0], (uint8_t)xBuff.length); } } int main(void) { xMCAL_McuInit(); xMCAL_SYSCTL_INIT(HFXT,STANDBY0); xMCAL_SYSTICK_INIT(Period_1ms); g_uartSpeed = mcalUART_BAUD_115200; g_canSpeed = BAUD_500; xECU_UARTInit(&prvUartHandle, g_uartSpeed); xECU_CANInit(CANFD0,g_canSpeed); while(1) { UARTDataProcess(); CANDataProcess(); } }