【发布时间】:2013-02-18 10:50:25
【问题描述】:
我知道如果CAN 传输出现错误,系统会生成一个特定的错误帧。但我不知道如何使它工作。
我设置了我的 CAN 套接字,然后我写入数据:
write(s, (struct sockaddr *)&addr, sizeof(addr))
总线上没有任何连接,所以我预计 CAN_ERR_ACK,但什么都没有到达。
PS:启用错误接收。
怎么了?
【问题讨论】:
我知道如果CAN 传输出现错误,系统会生成一个特定的错误帧。但我不知道如何使它工作。
我设置了我的 CAN 套接字,然后我写入数据:
write(s, (struct sockaddr *)&addr, sizeof(addr))
总线上没有任何连接,所以我预计 CAN_ERR_ACK,但什么都没有到达。
PS:启用错误接收。
怎么了?
【问题讨论】:
您可能必须启用错误接收
can_err_mask_t err_mask = CAN_ERR_ACK ;
setsockopt(skt, SOL_CAN_RAW, CAN_RAW_ERR_FILTER,&err_mask, sizeof(err_mask));
【讨论】:
./cansend can0 55 55 55 在另一个终端,candump 响应 <0x001> [3] 37 37 37 没有错误帧...