diff --git a/Spoolend/Spoolend.c b/Spoolend/Spoolend.c index 740cffc..d492139 100644 --- a/Spoolend/Spoolend.c +++ b/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); TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_1->m_pUserData; @@ -59,7 +59,7 @@ int RS485_1_Send(char *_pBuffer, uint32_t _iSize) 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); TUartUserData *ptUartUserData = (TUartUserData *)g_ptRS485_2->m_pUserData; @@ -94,11 +94,35 @@ static int check_RS485_2(char *_pBuffer, uint32_t _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); } +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) { 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) { TUartUserData *ptUartUserData = UART_userdata_init(0, 115200, 512); @@ -149,11 +168,11 @@ void SpoolendTask(void) { char pcBuffer1[52] = {0}; // char pcBuffer2[52] = {0}; - char cansend[5] = {1, 2, 3 ,4, 5}; - rd_ComIDSend(g_ptFDCAN1, 1, cansend, sizeof(cansend)); + char pcBuffer3[52] = {0}; __disable_irq(); rd_ComRead(g_ptRS485_1, pcBuffer1, sizeof(pcBuffer1)); // rd_ComRead(g_ptRS485_2, pcBuffer2, sizeof(pcBuffer2)); + rd_ComRead(g_ptFDCAN1, pcBuffer3, sizeof(pcBuffer3)); __enable_irq(); }