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