CANBus RX interrupts of HAL
This is my RX callback,it only can run one time, anything I set wrong?
I use it in LOOPBACK mode.
void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan)
{
Response=(uint8_t *)&hcan->pRxMsg->Data;
HAL_UART_Transmit(&huart4,Response, 8, 5);
HAL_CAN_Receive_IT(hcan,CAN_FIFO0);
}
static void MX_CAN_Init(void)
{
hcan.Instance = CAN;
hcan.Init.Prescaler = 2;
hcan.Init.Mode = CAN_MODE_LOOPBACK;
hcan.Init.SJW = CAN_SJW_1TQ;
hcan.Init.BS1 = CAN_BS1_14TQ;
hcan.Init.BS2 = CAN_BS2_5TQ;
hcan.Init.TTCM = DISABLE;
hcan.Init.ABOM = DISABLE;
hcan.Init.AWUM = DISABLE;
hcan.Init.NART = DISABLE;
hcan.Init.RFLM = DISABLE;
hcan.Init.TXFP = DISABLE;
if (HAL_CAN_Init(&hcan) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
}