void MX_can_transAndreceve()
{
CAN_FilterConfTypeDef sFilterConfig;
static CanTxMsgTypeDef TxMessage;
static CanRxMsgTypeDef RxMessage;
hcan2.pTxMsg = &TxMessage;
hcan1.pRxMsg = &RxMessage;
/*#############################*/
hcan2.pTxMsg->StdId = 0x11;
hcan2.pTxMsg->RTR = CAN_RTR_DATA;
hcan2.pTxMsg->IDE = CAN_ID_STD;
hcan2.pTxMsg->DLC = 8;
hcan2.pTxMsg->Data[0] = 0Xff;
hcan2.pTxMsg->Data[1] = 0x00;
hcan2.pTxMsg->Data[2] = 0xff;
hcan2.pTxMsg->Data[3] = 0x00;
hcan2.pTxMsg->Data[4] = 0xff;
hcan2.pTxMsg->Data[5] = 0x00;
hcan2.pTxMsg->Data[6] = 0xff;
hcan2.pTxMsg->Data[7] = 0x00;
/*#############################*/
sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = 0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.BankNumber = 14;
// HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig); Â˲¨
if (HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig) != HAL_OK)
{
/* Filter configuration Error */
Error_Handler();
}
}
void MX_can_use()
{
if(HAL_CAN_Transmit(&hcan2, 100) != HAL_OK)
{
Error_Handler();
}
if(HAL_CAN_GetState(&hcan2) != HAL_CAN_STATE_READY)
{
Error_Handler();
}
/*###############################################*/
if(HAL_CAN_Receive(&hcan1, CAN_FIFO0,10) != HAL_OK)
{
Error_Handler();
}
if(HAL_CAN_GetState(&hcan1) != HAL_CAN_STATE_READY)
{
Error_Handler();
}
HAL_Delay(1000);
}
|