|
我把CAN芯片取了。初始化能过,
CAN1_Mode_Init(CAN_SJW_1TQ,CAN_BS2_6TQ,CAN_BS1_7TQ,12,CAN_MODE_NORMAL); //CAN初始化,波特率250Kbps
// CAN1_Mode_Init(CAN_SJW_1TQ,CAN_BS2_6TQ,CAN_BS1_7TQ,12,CAN_MODE_LOOPBACK); //CAN初始化,波特率250Kbps
通过获取状态,不能进入 if 判断,如下:
if(HAL_CAN_GetError(&CAN1_Handler) != HAL_CAN_ERROR_NONE)
{
return 1;
}
delay_ms(50);
我通过发送函数也不有返回值,正常模式和回环模式都试过了,
// 准备发送数据
TxHeader.StdId = 0x123; // 标准ID
TxHeader.RTR = CAN_RTR_DATA; // 数据帧
TxHeader.DLC = 2; // 数据长度
TxData[0] = 0xCA;
TxData[1] = 0xFE;
// 发送数据
can_status = HAL_CAN_AddTxMessage(&CAN1_Handler, &TxHeader, TxData, 0);
if (can_status != HAL_OK) {
// 发送失败,CAN可能已损坏
return can_status;
}
can_status 一直为 0
请问有办法可以知道CAN收发器是不是坏了么? |
|