新手上路
- 积分
- 24
- 金钱
- 24
- 注册时间
- 2019-1-3
- 在线时间
- 5 小时
|
void MX_CAN_Init(void)
{
CAN1_Handler.pTxMsg=&TxMessage; //·¢ËÍÏûÏ¢
CAN1_Handler.pRxMsg=&RxMessage; //½ÓÊÕÏûÏ¢
//hcan.pTxMsg = &TxMessage;
// hcan.pRxMsg = &RxMessage;
hcan.Instance = CAN;
hcan.Init.Prescaler = 1;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SJW = CAN_SJW_1TQ;
hcan.Init.BS1 = CAN_BS1_7TQ;
hcan.Init.BS2 = CAN_BS2_8TQ;
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__);
}
sFilterConfig.FilterNumber = 0; //????0
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; //????????
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;//????????32?
sFilterConfig.FilterIdHigh =(((unsigned int)0x0000<<3)&0xFFFF0000)>>16; //????ID??,????????????ID?,????????ID
sFilterConfig.FilterIdLow = (((unsigned int)0x0000<<3)|CAN_ID_STD|CAN_RTR_DATA)&0xFFFF;//????ID??
//sFilterConfig.FilterMaskIdHigh = 0xffff;
//sFilterConfig.FilterMaskIdLow = 0xffff; //1????????ID????FilterId???????
sFilterConfig.FilterMaskIdHigh = 0; //????????ID?CAN??
sFilterConfig.FilterMaskIdLow = 0; //0???????????ID???
sFilterConfig.FilterFIFOAssignment =CAN_FILTER_FIFO0;//?????FIFO0;
sFilterConfig.FilterActivation = ENABLE;//?????
//sFilterConfig.BankNumber = 14;
HAL_CAN_Receive_IT(&hcan, CAN_FIFO0);
HAL_CAN_ConfigFilter(&hcan, &sFilterConfig);
也进入CAN中断了,最后在中断库函数的 pRxMsg->ExtId = (0xFFFFFFF8U & hcan->Instance->sFIFOMailBox[FIFONumber].RIR) >> CAN_RI0R_EXID_Pos此步骤的时候直接进入HardFault_Handler ?
感谢大家帮帮我!谢谢!!!
|
|