有没有使用过SOCKET can的 一种can的编程方式,在错误过滤接收
can_err_mask_t err_mask;
//err_mask = CAN_ERR_MASK;
err_mask = (CAN_ERR_TRX | CAN_ERR_TX_TIMEOUT | CAN_ERR_CRTL | CAN_ERR_BUSOFF);
setsockopt(s, SOL_CAN_RAW, CAN_RAW_ERR_FILTER,&err_mask, sizeof(err_mask));
代码如上,但是断开和 CAN转USB接收盒子 的高线或是低线,都接收不到错误帧。
若将err_mask换成第二行的值,则可接收到错误帧,得到can_id ==CAN_ERR_ACK 0x00000020U /* received no ACK on transmission */。
请问我的问题出在哪里,为什么只能收到无ACK应答的错误帧。
|