Обновление
This commit is contained in:
parent
137947dfb6
commit
33a2b32529
|
|
@ -73,7 +73,7 @@ typedef struct {
|
||||||
osMessageQueueId_t rxDataQueue[COUNT_QUEUE];
|
osMessageQueueId_t rxDataQueue[COUNT_QUEUE];
|
||||||
osMessageQueueId_t rxDataSnifferQueue[COUNT_QUEUE];
|
osMessageQueueId_t rxDataSnifferQueue[COUNT_QUEUE];
|
||||||
|
|
||||||
osMessageQueueId_t txAccessQueue;
|
osMutexId_t access;
|
||||||
|
|
||||||
DMA_InitType dmaInitCfg_RX;
|
DMA_InitType dmaInitCfg_RX;
|
||||||
DMA_ChannelCfgType chnCfg_RX;
|
DMA_ChannelCfgType chnCfg_RX;
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,9 @@ void vCanSerialPortFrameDMAInit(
|
||||||
env->DMA_BUF_LEN_RX = DMA_BUF_LEN_RX;
|
env->DMA_BUF_LEN_RX = DMA_BUF_LEN_RX;
|
||||||
env->IdSoftFilter_RX = (FilterTo_FLEXCAN_RxMbFilterType *) IdSoftFilter_RX;
|
env->IdSoftFilter_RX = (FilterTo_FLEXCAN_RxMbFilterType *) IdSoftFilter_RX;
|
||||||
env->CountSoftFilter_RX = CountSoftFilter_RX;
|
env->CountSoftFilter_RX = CountSoftFilter_RX;
|
||||||
|
|
||||||
|
env->access = osMutexNew(NULL);
|
||||||
|
|
||||||
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
||||||
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
||||||
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
|
||||||
|
|
@ -392,11 +395,17 @@ vCanSerialPortFrameReceive(tCanSerialPortFrameFlagchip *env, uint8_t idFilter, u
|
||||||
// : 0;
|
// : 0;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *data, uint16_t size, uint32_t timeout) {
|
uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *data, uint16_t size, uint32_t adr, uint8_t canType, uint32_t timeout) {
|
||||||
|
|
||||||
|
uint16_t sent = 0;
|
||||||
|
|
||||||
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
|
|
||||||
|
env->id = adr;
|
||||||
|
env->canTypeFrame = canType;
|
||||||
|
|
||||||
uint16_t fullSize = size / 8;
|
uint16_t fullSize = size / 8;
|
||||||
uint8_t tailSize = size % 8;
|
uint8_t tailSize = size % 8;
|
||||||
uint16_t sent = 0;
|
|
||||||
|
|
||||||
FLEXCAN_TxMsgType tTxMsg = {0};
|
FLEXCAN_TxMsgType tTxMsg = {0};
|
||||||
FLEXCAN_ErrorType tRetval;
|
FLEXCAN_ErrorType tRetval;
|
||||||
|
|
@ -447,6 +456,9 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
|
||||||
size -= tailSize;
|
size -= tailSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
osMutexRelease(env->access);
|
||||||
|
}
|
||||||
|
|
||||||
return sent;
|
return sent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue