Обновление 23.06.2026

This commit is contained in:
Дарья Бараева 2026-06-23 17:43:19 +03:00
parent d53f3681fd
commit 4a41a57e08
2 changed files with 13 additions and 11 deletions

View File

@ -75,7 +75,7 @@ typedef struct {
osMessageQueueId_t rxDataQueue[COUNT_QUEUE]; osMessageQueueId_t rxDataQueue[COUNT_QUEUE];
osMessageQueueId_t rxDataSnifferQueue[COUNT_QUEUE]; osMessageQueueId_t rxDataSnifferQueue[COUNT_QUEUE];
osMutexId_t access; osMutexId_t access[2];
DMA_InitType dmaInitCfg_RX; DMA_InitType dmaInitCfg_RX;
DMA_ChannelCfgType chnCfg_RX; DMA_ChannelCfgType chnCfg_RX;
@ -157,7 +157,7 @@ bool vCanSerialPortFrameMbInit(
); );
void CAN_RxInterrupt_CallBack_Handler(tCanSerialPortFrameFlagchip *env, uint8_t u8CanIndex, FLEXCAN_RxMsgType *pRxCfg); void CAN_RxInterrupt_CallBack_Handler(tCanSerialPortFrameFlagchip *env, uint8_t u8CanIndex, FLEXCAN_RxMsgType *pRxCfg);
void CanSerialPortFrameIrqRxProcessing(tCanSerialPortFrameFlagchip *env, uint32_t *pBuf); void CanSerialPortFrameIrqRxProcessing(tCanSerialPortFrameFlagchip *env, uint32_t *pBuf);

View File

@ -267,7 +267,8 @@ bool vCanSerialPortFrameDMAInit(
env->reInitOne = true; env->reInitOne = true;
env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); env->txDataQueueCan = osMessageQueueNew(1, 1, NULL);
env->access = osMutexNew(NULL); env->access[0] = osMutexNew(NULL);
env->access[1] = osMutexNew(NULL);
vCanSerialPortFrameInitStructure(env, 10, 0); vCanSerialPortFrameInitStructure(env, 10, 0);
@ -423,7 +424,8 @@ bool vCanSerialPortFrameMbInit(
if (!env->reInitOne) { if (!env->reInitOne) {
env->reInitOne = true; env->reInitOne = true;
env->access = osMutexNew(NULL); env->access[0] = osMutexNew(NULL);
env->access[1] = osMutexNew(NULL);
env->txDataQueueCan = osMessageQueueNew(1, 1, NULL); env->txDataQueueCan = osMessageQueueNew(1, 1, NULL);
vCanSerialPortFrameInitStructure(env, 10, 0); vCanSerialPortFrameInitStructure(env, 10, 0);
@ -715,7 +717,7 @@ FLEXCAN_ErrorType TransmitCan(tCanSerialPortFrameFlagchip *env, FLEXCAN_TxMsgTyp
if (tRetval != FLEXCAN_ERROR_OK) { if (tRetval != FLEXCAN_ERROR_OK) {
FLEXCAN_TransmitAbort(env->CAN_INDEX, tTxMsg->u8TxHandler); FLEXCAN_TransmitAbort(env->CAN_INDEX, tTxMsg->u8TxHandler);
} else { } else {
/*
if (tTxMsg->bWaitTxCompleted) { if (tTxMsg->bWaitTxCompleted) {
uint8_t u8TxHandler; uint8_t u8TxHandler;
@ -726,7 +728,7 @@ FLEXCAN_ErrorType TransmitCan(tCanSerialPortFrameFlagchip *env, FLEXCAN_TxMsgTyp
} }
} }
*/
FLEXCAN_TransmitProcess(env->CAN_INDEX, tTxMsg->u8TxHandler); FLEXCAN_TransmitProcess(env->CAN_INDEX, tTxMsg->u8TxHandler);
} }
@ -735,11 +737,11 @@ FLEXCAN_ErrorType TransmitCan(tCanSerialPortFrameFlagchip *env, FLEXCAN_TxMsgTyp
uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *data, uint16_t size, uint32_t adr, uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *data, uint16_t size, uint32_t adr,
uint8_t canType, uint32_t timeout) { uint8_t canType, uint32_t timeout, uint8_t u8TxHandler) {
uint16_t sent = 0; uint16_t sent = 0;
if (osMutexAcquire(env->access, 1000) == osOK) { if (osMutexAcquire(env->access[u8TxHandler], 1000) == osOK) {
env->id = adr; env->id = adr;
env->canTypeFrame = canType; env->canTypeFrame = canType;
@ -751,7 +753,7 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
FLEXCAN_ErrorType tRetval; FLEXCAN_ErrorType tRetval;
tTxMsg.u32CanId = env->id; tTxMsg.u32CanId = env->id;
tTxMsg.u8TxHandler = 0U; tTxMsg.u8TxHandler = u8TxHandler; //0U;
tTxMsg.bEnFd = FALSE; tTxMsg.bEnFd = FALSE;
tTxMsg.bEnBrs = FALSE; tTxMsg.bEnBrs = FALSE;
@ -760,7 +762,7 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
tTxMsg.eDataType = FLEXCAN_FRAME_DATA; tTxMsg.eDataType = FLEXCAN_FRAME_DATA;
tTxMsg.eFrameType = (FLEXCAN_IdType) env->canTypeFrame; tTxMsg.eFrameType = (FLEXCAN_IdType) env->canTypeFrame;
tTxMsg.bWaitTxCompleted = 1U; tTxMsg.bWaitTxCompleted = 1U;
tTxMsg.u16WaitTxTimeout = 50; tTxMsg.u16WaitTxTimeout = 50000;
uint16_t len = 0; uint16_t len = 0;
@ -786,7 +788,7 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
size -= tailSize; size -= tailSize;
} }
osMutexRelease(env->access); osMutexRelease(env->access[u8TxHandler]);
} }
return sent; return sent;