
CAN帧使用struct can_frame结构体。
struct can_frame frame = {0};
// 准备数据
frame.can_id = 0x610;
//扩展帧
frame.can_id |= CAN_EFF_FLAG;
frame.can_dlc = 8;
frame.data[0] = 0x40;
frame.data[1] = 0x01;
frame.data[2] = 0x10;
frame.data[3] = 0x00;
frame.data[4] = 0x00;
frame.data[5] = 0x00;
frame.data[6] = 0x00;
frame.data[7] = 0x00;
// 发送数据
nbytes = write(socketFd, &frame, sizeof(frame));
FD帧使用struct canfd_frame结构体。
struct canfd_frame frame = {0};
// 准备数据
frame.can_id = 0x610; // cob-id
//扩展帧
frame.can_id |= CAN_EFF_FLAG;
frame.flags = 0;
frame.flags |= CANFD_BRS;
//数据长度为64个字节
frame.len = 64;
frame.data[0] = 0x40;
frame.data[1] = 0x01;
frame.data[2] = 0x10;
frame.data[3] = 0x00;
frame.data[4] = 0x00;
frame.data[5] = 0x00;
frame.data[6] = 0x00;
frame.data[7] = 0x00;
// 发送数据
nbytes = write(socketFd, &frame, sizeof(frame));