当CAN
2.
下面以CAN发送数据为例,介绍如何检测BUS-OFF错误状态。
structcan_frameframesend={
err=write(s_can0,&framesend,sizeof(framesend));
通过检测framesend .can_id是否被BUS-OFF置位。
3.
最好的处理方法是:restart。can0出错了,restart can0。
4.
检测CAN BUS-OFF错误并进行处理,网上已经有开源代码,大家可以参考这个网址:/zixunimg/eepwimg/www.pengutronix.de/software/libsocketcan/download/
intstate;if((can_get_state(if_name_can0,&state))<0) { fprintf(stderr,"cannotgetbustate,""somethingisseriouslywrong"); } elseif(state==CAN_STATE_BUS_OFF) { fprintf(stderr,"DeviceisinBUS_OFF"); do_restart("can0"); }
do_restart("can0")的作用是restart can0。