chg-stn-motherboard-ti-mcu/main.c

107 lines
2.9 KiB
C

/* @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();
}
}