- 积分
- 21
贡献115
飞刀31 FD
注册时间2021-11-12
在线时间3 小时
|
楼主 |
发表于 2021-11-17 12:00:13
|
显示全部楼层
嗯嗯,谢谢您回复,我把两块板卡通过can连在一起,确实没这个现象了。
但是出现了另外一个奇怪的问题,需要咨询一下您,如下图所示:
root@imx8mqevk:~# ./cansend can0 123#12345678
[ 2060.920669] mcp25xxfd spi0.0 can0: tefif: fifo 0 not pending - tef data: id: 00000000 flags: 00000000, ts: 00000000 - this may be a problem with spi signal quality- try reducing spi-clock speed if this can get reproduced
这里虽然报错了,但是另外一个板卡是imx6,确实可以通过candump收到来自imx8的can报文,想问一下这个问题出错是什么原因造成的,因为我发现当我发送大量报文时,会发送失败。
这里的cansend程序是我基于can-utils-2020.12.0更改的,代码在附件中,相较于源码,我只是在ioctl之前增加了system相关操作,如下所示:
/* check command line options */
if (argc != 3) {
print_usage(argv[0]);
return 1;
}
char stop[] = "ifconfig can0 down";
system(stop);
char ip_set[] = "ip link set can0 type can bitrate 500000 dbitrate 2000000 fd on";
system(ip_set);
char start_cmd[] = "ifconfig can0 up";
system(start_cmd);
/* parse CAN frame */
required_mtu = parse_canframe(argv[2], &frame);
if (!required_mtu){
fprintf(stderr, "\nWrong CAN-frame format!\n\n");
print_usage(argv[0]);
return 1;
}
|
|