Browse Source

【调通打标】】CAN的自发自收调通

master
Lizongdi 11 hours ago
parent
commit
04ae58a2aa
  1. 39
      Spoolend/Spoolend.c

39
Spoolend/Spoolend.c

@ -50,7 +50,7 @@ TComCtrl *g_ptFDCAN1;
* * * *
*----------------------------------------------*/ *----------------------------------------------*/
int RS485_1_Send(char *_pBuffer, uint32_t _iSize) static int RS485_1_Send(char *_pBuffer, uint32_t _iSize)
{ {
HAL_GPIO_WritePin(RS485_1_DIR_GPIO_Port, RS485_1_DIR_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(RS485_1_DIR_GPIO_Port, RS485_1_DIR_Pin, GPIO_PIN_SET);
TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_1->m_pUserData; TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_1->m_pUserData;
@ -59,7 +59,7 @@ int RS485_1_Send(char *_pBuffer, uint32_t _iSize)
return iRet; return iRet;
} }
int RS485_2_Send(char *_pBuffer, uint32_t _iSize) static int RS485_2_Send(char *_pBuffer, uint32_t _iSize)
{ {
HAL_GPIO_WritePin(RS485_2_DIR_GPIO_Port, RS485_2_DIR_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(RS485_2_DIR_GPIO_Port, RS485_2_DIR_Pin, GPIO_PIN_SET);
TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_2->m_pUserData; TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_2->m_pUserData;
@ -94,11 +94,35 @@ static int check_RS485_2(char *_pBuffer, uint32_t _iSize)
return _iSize; return _iSize;
} }
int FDCAN1_Send(char *_pBuffer, uint32_t _iSize) static int check_Spoolend(char *_pBuffer, uint32_t _iSize)
{
TCANUserData *ptCANUserData = (TCANUserData *)g_ptFDCAN1->m_pUserData;
uint32_t iCANId = (uint8_t)ptCANUserData->m_canrx->Identifier;
rd_ComIDSend(g_ptFDCAN1, iCANId, _pBuffer, _iSize);
return _iSize;
}
static int FDCAN1_Send(char *_pBuffer, uint32_t _iSize)
{ {
return CAN_TX_FIFOQ(g_ptFDCAN1, _pBuffer[0], &_pBuffer[4], _iSize); return CAN_TX_FIFOQ(g_ptFDCAN1, _pBuffer[0], &_pBuffer[4], _iSize);
} }
void HAL_FDCAN_ErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorStatusITs)
{
if (hfdcan->Instance == FDCAN1)
{
MX_FDCAN1_Init();
}
}
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs)
{
if (hfdcan->Instance == FDCAN1)
{
CAN_RX_IRQHandler(g_ptFDCAN1);
}
}
void Myprint_Init(void) void Myprint_Init(void)
{ {
TUartUserData *ptUartUserData = UART_userdata_init(1, 115200, 4096); TUartUserData *ptUartUserData = UART_userdata_init(1, 115200, 4096);
@ -127,11 +151,6 @@ int Myprint_putchar(uint8_t ch)
} }
} }
static int check_Spoolend(char *_pBuffer, uint32_t _iSize)
{
return _iSize;
}
void SpoolendInit(void) void SpoolendInit(void)
{ {
TUartUserData *ptUartUserData = UART_userdata_init(0, 115200, 512); TUartUserData *ptUartUserData = UART_userdata_init(0, 115200, 512);
@ -149,11 +168,11 @@ void SpoolendTask(void)
{ {
char pcBuffer1[52] = {0}; char pcBuffer1[52] = {0};
// char pcBuffer2[52] = {0}; // char pcBuffer2[52] = {0};
char cansend[5] = {1, 2, 3 ,4, 5}; char pcBuffer3[52] = {0};
rd_ComIDSend(g_ptFDCAN1, 1, cansend, sizeof(cansend));
__disable_irq(); __disable_irq();
rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1)); rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1));
// rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); // rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2));
rd_ComRead(g_ptFDCAN1, pcBuffer3, sizeof(pcBuffer3));
__enable_irq(); __enable_irq();
} }

Loading…
Cancel
Save