Browse Source

增加带ID发送的接口

master
Lizongdi 1 day ago
parent
commit
71e93e9800
  1. 4
      RBcore/drv_interface.c
  2. 31
      peripheral/com.c
  3. 2
      peripheral/include/com.h

4
RBcore/drv_interface.c

@ -118,12 +118,12 @@ int RS485_4_Send(char *_pBuffer, uint32_t _iSize)
int FDCAN1_Send(char *_pBuffer, uint32_t _iSize)
{
return CAN_TX_FIFOQ(g_ptFDCAN1, _pBuffer[0], &_pBuffer[1], _iSize);
return CAN_TX_FIFOQ(g_ptFDCAN1, _pBuffer[0], &_pBuffer[4], _iSize);
}
int FDCAN2_Send(char *_pBuffer, uint32_t _iSize)
{
return CAN_TX_FIFOQ(g_ptFDCAN2, _pBuffer[0], &_pBuffer[1], _iSize);
return CAN_TX_FIFOQ(g_ptFDCAN2, _pBuffer[0], &_pBuffer[4], _iSize);
}
#ifndef CONFIG_UART_IT_IDLEDMA

31
peripheral/com.c

@ -387,3 +387,34 @@ int rd_ComRead(TComCtrl *_ptComCtrl, char *_pBuffer, uint32_t _iSize)
return 0;
}
int rd_ComIDWrite(TComCtrl *_ptComCtrl, uint32_t _iFrameID, char *_pBuffer, uint32_t _iSize)
{
uint32_t totalSize = sizeof(uint32_t) + _iSize;
char sendBuf[totalSize];
sendBuf[0] = (char)( _iFrameID & 0xFF);
sendBuf[1] = (char)((_iFrameID >> 8) & 0xFF);
sendBuf[2] = (char)((_iFrameID >> 16) & 0xFF);
sendBuf[3] = (char)((_iFrameID >> 24) & 0xFF);
RD_MEMCPY(&sendBuf[sizeof(uint32_t)], _pBuffer, _iSize);
return rd_ComWrite(_ptComCtrl, sendBuf, _iSize);
}
int rd_ComIDSend(TComCtrl *_ptComCtrl, uint32_t _iFrameID, char *_pBuffer, uint32_t _iSize)
{
uint32_t totalSize = sizeof(uint32_t) + _iSize;
char sendBuf[totalSize];
sendBuf[0] = (char)( _iFrameID & 0xFF);
sendBuf[1] = (char)((_iFrameID >> 8) & 0xFF);
sendBuf[2] = (char)((_iFrameID >> 16) & 0xFF);
sendBuf[3] = (char)((_iFrameID >> 24) & 0xFF);
RD_MEMCPY(&sendBuf[sizeof(uint32_t)], _pBuffer, _iSize);
return rd_ComSend(_ptComCtrl, sendBuf, _iSize);
}

2
peripheral/include/com.h

@ -119,6 +119,8 @@ void rd_ComSendProc(TComCtrl *_ptComCtrl);
void rd_ComRecvProc(TComCtrl *_ptComCtrl, const char *_pBuffer, uint32_t _iSize);
int rd_ComWrite(TComCtrl *_ptComCtrl, char *_pBuffer, uint32_t _iSize);
int rd_ComRead(TComCtrl *_ptComCtrl, char *_pBuffer, uint32_t _iSize);
int rd_ComIDWrite(TComCtrl *_ptComCtrl, uint32_t _iFrameID, char *_pBuffer, uint32_t _iSize);
int rd_ComIDSend(TComCtrl *_ptComCtrl, uint32_t _iFrameID, char *_pBuffer, uint32_t _iSize);
#ifdef __cplusplus
#if __cplusplus

Loading…
Cancel
Save