Обновление 23.06.2026
This commit is contained in:
parent
d53f3681fd
commit
4a41a57e08
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue