Обновление

This commit is contained in:
cfif 2025-12-22 17:57:29 +03:00
parent 137947dfb6
commit 33a2b32529
2 changed files with 49 additions and 37 deletions

View File

@ -73,7 +73,7 @@ typedef struct {
osMessageQueueId_t rxDataQueue[COUNT_QUEUE];
osMessageQueueId_t rxDataSnifferQueue[COUNT_QUEUE];
osMessageQueueId_t txAccessQueue;
osMutexId_t access;
DMA_InitType dmaInitCfg_RX;
DMA_ChannelCfgType chnCfg_RX;

View File

@ -104,6 +104,9 @@ void vCanSerialPortFrameDMAInit(
env->DMA_BUF_LEN_RX = DMA_BUF_LEN_RX;
env->IdSoftFilter_RX = (FilterTo_FLEXCAN_RxMbFilterType *) IdSoftFilter_RX;
env->CountSoftFilter_RX = CountSoftFilter_RX;
env->access = osMutexNew(NULL);
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
//начало-----------------------------------DMA-RX-------------------------------------------------------------------
@ -392,11 +395,17 @@ vCanSerialPortFrameReceive(tCanSerialPortFrameFlagchip *env, uint8_t idFilter, u
// : 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;
uint8_t tailSize = size % 8;
uint16_t sent = 0;
FLEXCAN_TxMsgType tTxMsg = {0};
FLEXCAN_ErrorType tRetval;
@ -447,6 +456,9 @@ uint16_t vCanSerialPortFrameTransmit(tCanSerialPortFrameFlagchip *env, uint8_t *
size -= tailSize;
}
osMutexRelease(env->access);
}
return sent;
}