From d53f3681fddc40dc60ca9d8cad595ce58e4d1cbe Mon Sep 17 00:00:00 2001 From: darya Date: Tue, 23 Jun 2026 09:48:46 +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=2023.06.2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inc/CanSerialPortFrame.h | 2 +- Src/CanSerialPortFrame.c | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Inc/CanSerialPortFrame.h b/Inc/CanSerialPortFrame.h index 17059d9..398ba1e 100644 --- a/Inc/CanSerialPortFrame.h +++ b/Inc/CanSerialPortFrame.h @@ -61,7 +61,7 @@ typedef struct { FLEXCAN_IdType canTypeFrame; bool canFilterEnable; - bool reInit; + bool reInitOne; uint8_t CountHardSoftFilter_RX; diff --git a/Src/CanSerialPortFrame.c b/Src/CanSerialPortFrame.c index c996a75..3d8ee96 100644 --- a/Src/CanSerialPortFrame.c +++ b/Src/CanSerialPortFrame.c @@ -117,10 +117,6 @@ bool vCanSerialPortFrameDMAInit( env->DMA_TransferCompleteCallback = DMA_TransferCompleteCallback; env->DMA_ErrorCallback = DMA_ErrorCallback; - - env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); - env->access = osMutexNew(NULL); - //начало-----------------------------------DMA-RX------------------------------------------------------------------- //начало-----------------------------------DMA-RX------------------------------------------------------------------- //начало-----------------------------------DMA-RX------------------------------------------------------------------- @@ -266,8 +262,13 @@ bool vCanSerialPortFrameDMAInit( } - if (!env->reInit) { - env->reInit = true; + if (!env->reInitOne) { + + env->reInitOne = true; + + env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); + env->access = osMutexNew(NULL); + vCanSerialPortFrameInitStructure(env, 10, 0); CanSerialPortFrameSetType(env, canTypeFrame); @@ -325,8 +326,6 @@ bool vCanSerialPortFrameMbInit( // env->DMA_TransferCompleteCallback = DMA_TransferCompleteCallback; // env->DMA_ErrorCallback = DMA_ErrorCallback; - env->access = osMutexNew(NULL); - env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); //начало------------------------------------CAN--------------------------------------------------------------------- //начало------------------------------------CAN--------------------------------------------------------------------- @@ -421,8 +420,12 @@ bool vCanSerialPortFrameMbInit( } - if (!env->reInit) { - env->reInit = true; + if (!env->reInitOne) { + env->reInitOne = true; + + env->access = osMutexNew(NULL); + env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); + vCanSerialPortFrameInitStructure(env, 10, 0); CanSerialPortFrameSetType(env, canTypeFrame);