Обновление 23.06.2026
This commit is contained in:
parent
4a41a57e08
commit
68bf8fd28f
|
|
@ -39,6 +39,7 @@ typedef struct {
|
||||||
} can_rx_message_type;
|
} can_rx_message_type;
|
||||||
|
|
||||||
|
|
||||||
|
#define COUNT_TX_HANDLER 3
|
||||||
#define COUNT_QUEUE 4
|
#define COUNT_QUEUE 4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
@ -54,7 +55,7 @@ typedef struct {
|
||||||
|
|
||||||
uint8_t CAN_INDEX;
|
uint8_t CAN_INDEX;
|
||||||
|
|
||||||
osMessageQueueId_t txDataQueueCan;
|
osMessageQueueId_t txDataQueueCan[COUNT_TX_HANDLER];
|
||||||
|
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
uint32_t id1;
|
uint32_t id1;
|
||||||
|
|
@ -75,7 +76,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[2];
|
osMutexId_t access[COUNT_TX_HANDLER];
|
||||||
|
|
||||||
DMA_InitType dmaInitCfg_RX;
|
DMA_InitType dmaInitCfg_RX;
|
||||||
DMA_ChannelCfgType chnCfg_RX;
|
DMA_ChannelCfgType chnCfg_RX;
|
||||||
|
|
|
||||||
|
|
@ -266,9 +266,10 @@ bool vCanSerialPortFrameDMAInit(
|
||||||
|
|
||||||
env->reInitOne = true;
|
env->reInitOne = true;
|
||||||
|
|
||||||
env->txDataQueueCan = osMessageQueueNew(1, 1, NULL);
|
for (uint8_t i = 0; i < COUNT_TX_HANDLER; ++i) {
|
||||||
env->access[0] = osMutexNew(NULL);
|
env->access[i] = osMutexNew(NULL);
|
||||||
env->access[1] = osMutexNew(NULL);
|
env->txDataQueueCan[i] = osMessageQueueNew(1, 1, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
vCanSerialPortFrameInitStructure(env, 10, 0);
|
vCanSerialPortFrameInitStructure(env, 10, 0);
|
||||||
|
|
||||||
|
|
@ -424,9 +425,11 @@ bool vCanSerialPortFrameMbInit(
|
||||||
if (!env->reInitOne) {
|
if (!env->reInitOne) {
|
||||||
env->reInitOne = true;
|
env->reInitOne = true;
|
||||||
|
|
||||||
env->access[0] = osMutexNew(NULL);
|
for (uint8_t i = 0; i < COUNT_TX_HANDLER; ++i) {
|
||||||
env->access[1] = osMutexNew(NULL);
|
env->access[i] = osMutexNew(NULL);
|
||||||
env->txDataQueueCan = osMessageQueueNew(1, 1, NULL);
|
env->txDataQueueCan[i] = osMessageQueueNew(1, 1, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
vCanSerialPortFrameInitStructure(env, 10, 0);
|
vCanSerialPortFrameInitStructure(env, 10, 0);
|
||||||
|
|
||||||
|
|
@ -721,7 +724,7 @@ FLEXCAN_ErrorType TransmitCan(tCanSerialPortFrameFlagchip *env, FLEXCAN_TxMsgTyp
|
||||||
if (tTxMsg->bWaitTxCompleted) {
|
if (tTxMsg->bWaitTxCompleted) {
|
||||||
|
|
||||||
uint8_t u8TxHandler;
|
uint8_t u8TxHandler;
|
||||||
if (osMessageQueueGet(env->txDataQueueCan, &u8TxHandler, NULL, tTxMsg->bWaitTxCompleted) == osOK) {
|
if (osMessageQueueGet(env->txDataQueueCan[tTxMsg->u8TxHandler], &u8TxHandler, NULL, tTxMsg->bWaitTxCompleted) == osOK) {
|
||||||
tRetval = FLEXCAN_ERROR_OK;
|
tRetval = FLEXCAN_ERROR_OK;
|
||||||
} else {
|
} else {
|
||||||
tRetval = FLEXCAN_ERROR_TIMEOUT;
|
tRetval = FLEXCAN_ERROR_TIMEOUT;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue