|
发表于 2017-12-17 22:20:04
15776 浏览 1 回复
Linux/Qt下CAN通信
发现这个问题之前有许多帖子提过,但是还是没有得到答案。问题如下(所有操作都基于iTOP4412全能版,Linux/Qt系统):
1、我配置完驱动后,ifconfig can0 up可以看到can0设备,如下:
我应该怎么设置波特率?
我看了官方帖,程序如下,没有设置波特率的代码。我运行了程序,用CAN分析仪测试不成功,应该波特率不对,请问默认波特率多少?之前看到说需要用两块官方的板子测试。这显然不显示,不可能为了这个整两个板子,再说如果只能在官方板子上运行也没意义。
s = socket(PF_CAN,SOCK_RAW,CAN_RAW);
strcpy(ifr.ifr_name,"can0");
ioctl(s,SIOCGIFINDEX,&ifr);
printf("can0 can_ifindex = %x\n",ifr.ifr_ifindex);
//bind to all enabled can interface
addr.can_family = AF_CAN;
addr.can_ifindex =0;
bind(s,(struct sockaddr*)&addr,sizeof(addr));
nbytes = recvfrom(s,&frame,sizeof(struct can_frame),0,(struct sockaddr *)&addr,&len);
2、下载了iproute2的源代码,但是总是编译不通过,出现下面错误信息,why?用的是官方配置好的ubuntu系统。
make[1]: Entering directory `/home/topeet/SourceCode/iproute2-2.6.37/ip'
make[1]: *** No rule to make target `../lib/libnetlink.a', needed by `ip'. Stop.
make[1]: Leaving directory `/home/topeet/SourceCode/iproute2-2.6.37/ip'
make: *** [all] Error 2
3、官方的全能版教程里面讲的CAN驱动配置是不全的,太简略,按照那种操作前面一直找不到CAN设备。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
|
|
|
|
|
|
可以使用canconfig配置下~
群共享中有介绍的文档 |
|
|
|
|
|
|
登录或注册
扫一扫关注迅为公众号
|