From 6ce97a410c96312417dc5a19930f18fdb8f38174 Mon Sep 17 00:00:00 2001 From: cfif Date: Fri, 17 Apr 2026 17:24:01 +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 --- CanPorts.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/CanPorts.c b/CanPorts.c index 7d33ad9..d21d41f 100644 --- a/CanPorts.c +++ b/CanPorts.c @@ -29,6 +29,19 @@ static void DMA_TransferCompleteCallbackCan1(void) { CanSerialPortFrameIrqRxProcessing(CAN_PORTS.Can1_IO.env, (uint32_t *) &g_aRxDataBufCan1[0]); } + +static void CAN0_ErrorInterrupt_CallBack(uint8_t u8CanIndex, FLEXCAN_ErrorInfoType *pErrorInfo) { + FLEXCAN_ClrErrorInfo(u8CanIndex, pErrorInfo); + PROCESS_UNUSED_VAR(u8CanIndex); + PROCESS_UNUSED_VAR(pErrorInfo); +} + +static void CAN0_RxInterrupt_CallBack(uint8_t u8CanIndex, FLEXCAN_RxMsgType *pRxCfg) { + CanSerialPortFrameIrqRxProcessingNO_DMA(CAN_PORTS.Can0_IO.env, pRxCfg); +} + + + //static void DMA_ErrorCallback(void) { // while (1) { // __asm("nop"); @@ -159,10 +172,6 @@ const FLEXCAN_RxMbFilterType IdCanFilterFifoCan1[countIdCanFilterFifoCan1] = { }; */ -void CAN0_ErrorInterrupt_CallBack(uint8_t u8CanIndex, FLEXCAN_ErrorInfoType *pErrorInfo) { - asm("nop"); -} - static bool vCanPort_InitCan0() { vCanPort_InitCAN0RxTxPin(); @@ -202,9 +211,9 @@ static bool vCanPort_InitCan0() { FLEXCAN_BAUD_500K, FLEXCAN_ID_STD, 0x55, + CAN0_ErrorInterrupt_CallBack, NULL, - NULL, - NULL, + CAN0_RxInterrupt_CallBack, NULL, DMA_TransferCompleteCallbackCan0, @@ -250,6 +259,7 @@ static void vCanPort_InitCAN1RxTxPin() { } static bool vCanPort_InitCan1() { + vCanPort_InitCAN1RxTxPin(); bool result = vCanSerialPortFrameDMAInit( @@ -305,6 +315,7 @@ void CanPorts_Init(tLoggerInterface *logger) { CAN_PORTS.Can0_IO = CanPortFrame_GetIo(&CAN_PORTS.Can0); CAN_PORTS.Can1.reInit = false; +/* result = vCanPort_InitCan1(); if (result) { LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN1 - OK") @@ -312,7 +323,8 @@ void CanPorts_Init(tLoggerInterface *logger) { LoggerInfoStatic(LOGGER, LOG_SIGN, "Initialization CAN1 - ERROR") } CAN_PORTS.Can1_IO = CanPortFrame_GetIo(&CAN_PORTS.Can1); -} +*/ + } void CAN0_IRQHandler(void) { FLEXCAN_IRQHandler(0U);