From 472890d8bd092b2891b932f1ec219039acc681c0 Mon Sep 17 00:00:00 2001 From: cfif Date: Sun, 21 Jun 2026 18:41:12 +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 --- Inc/fc7xxx_driver_flexcan.h | 2 +- Src/fc7xxx_driver_flexcan.c | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Inc/fc7xxx_driver_flexcan.h b/Inc/fc7xxx_driver_flexcan.h index 86403a8..48c746a 100644 --- a/Inc/fc7xxx_driver_flexcan.h +++ b/Inc/fc7xxx_driver_flexcan.h @@ -173,7 +173,7 @@ typedef struct { uint8_t u8TxHandler; /**< one message buffer used one handler, range 0 ~ txMbCnt-1 */ uint8_t bWaitTxCompleted;/**< wait transmit complete and clear iflag */ - uint32_t u16WaitTxTimeout; /**< wait transmit complete timeout */ + uint16_t u16WaitTxTimeout; /**< wait transmit complete timeout */ uint8_t bEnFd; /**< enable FLEXCAN fd */ uint8_t bEnBrs; /**< enable canfd data bit switch */ uint32_t u32CanId; /**< FLEXCAN id */ diff --git a/Src/fc7xxx_driver_flexcan.c b/Src/fc7xxx_driver_flexcan.c index c2f0f57..ef5efb3 100644 --- a/Src/fc7xxx_driver_flexcan.c +++ b/Src/fc7xxx_driver_flexcan.c @@ -2022,8 +2022,11 @@ FLEXCAN_ErrorType FLEXCAN_Stop(uint8_t u8CanIndex) return tRetVal; } -uint32_t osThreadYield (void); +#include "cmsis_os2.h" + +extern osMessageQueueId_t txDataQueueCan0; +extern osMessageQueueId_t txDataQueueCan1; /** * @brief Transmit data, if tx disable, must call FLEXCAN_TransmitProcess after transmiting * @@ -2163,6 +2166,21 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy FLEXCAN_MB_CODE_SET(u32TempAddr, 0x0CU); + if (u8CanIndex == 0) { + uint8_t u8TxHandler; + if (osMessageQueueGet(txDataQueueCan0, &u8TxHandler, NULL, pTxMsg->bWaitTxCompleted) == osOK) { + + } + } + + if (u8CanIndex == 1) { + uint8_t u8TxHandler; + if (osMessageQueueGet(txDataQueueCan1, &u8TxHandler, NULL, pTxMsg->bWaitTxCompleted) == osOK) { + + } + } + +/* if (pTxMsg->bWaitTxCompleted) { u32TempAddr = 0U; @@ -2173,6 +2191,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy osThreadYield(); } + if (u32WordLen == 0U) { tRetVal = FLEXCAN_ERROR_TIMEOUT; @@ -2187,7 +2206,7 @@ FLEXCAN_ErrorType FLEXCAN_TransmitData(uint8_t u8CanIndex, const FLEXCAN_TxMsgTy tRetVal = FLEXCAN_ERROR_TIMEOUT; } } - +*/ } } #if FLEXCAN_CHECK_PARAMETERS == STD_ON