社区
Linux/Unix社区
帖子详情
linux socket CAN设置波特率总是失败
mz454619501
2016-08-04 11:59:51
如题,有谁知道是什么原因吗?
...全文
829
1
打赏
收藏
linux socket CAN设置波特率总是失败
如题,有谁知道是什么原因吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wain_
2016-09-14
打赏
举报
回复
怎么设置的...
Linux
Qt Can.zip
Linux
下面QT写Can通信程序,网络上有很多例子都是互相抄的;本人因为项目原因,通过源代码
Socket
函数,写了完整的程序,含有2个案例;分享给大家; 这里主要是包含几个步骤,1:绑定
Socket
;2:cna/can1的
设置
,3:
波特率
的
设置
(如果发送和接收
波特率
不一致肯定不行的);4:发送;5:接收处理; 下面就贴出部分代码: void MyWindow::startcan(int number) { int ret = 0; //can先关闭
设置
好
波特率
后 再开启can if(number == 0) //can0 { system("ifconfig can0 down");//先关闭 system("ip link set can0 up type can bitrate 50000 triple-sampling on");//
设置
波特率
system("ifconfig can0 up");//再开启 } else //can1 { system("ifconfig can1 down");//先关闭 system("ip link set can1 up type can bitrate 50000 triple-sampling on");//
设置
波特率
system("ifconfig can1 up");//再开启 }
socket
= ::
socket
(PF_CAN,SOCK_RAW,CAN_RAW); struct ifreq ifr; strcpy((char *)(ifr.ifr_name),number == 0 ? "can0" : "can1"); ioctl(
socket
,SIOCGIFINDEX,&ifr); addr.can_family = AF_CAN; addr.can_ifindex = ifr.ifr_ifindex; ret = bind(
socket
,(struct sockaddr*)&addr,sizeof(addr)); if (ret OpenCan(50000); ArmCan = new Thread(zyhapi,
socket
,port); ArmCan->start(); } void MyWindow::stopcan(int number) { if(ArmCan) { ArmCan->stop(); ArmCan->terminate(); ArmCan->wait(); } zyhapi->CloseCan(number); } //发送 void MyWindow::on_sendbtn_clicked() { /* struct can_frame frame; memset(&frame,0,sizeof(struct can_frame)); std::string str=ui->edit->text().toStdString(); if(str.length() > 8) { QMessageBox::about(this,"error","length of send string must less than 8 bytes"); return; } */ struct can_frame frame; memset(&frame,0,sizeof(struct can_frame)); char buf[8]={0X20,0XFF,0X01,0X02,0X03,0X04,0XFF,0XFF}; frame.can_id = 0x00000020;//发出去的帧ID即:0X00000020 frame.can_dlc = 8;//帧数据长度 for(int i=0;i
socket,&frame,sizeof(struct can_frame),0,(struct sockaddr*)&addr,sizeof(addr)); /* struct can_frame frame; char buf[8]={0X20,0XFF,0X01,0X02,0X03,0X04,0XFF,0XFF}; frame.can_id = 0x00000020;//发出去的帧ID即:0X00000020 frame.can_dlc = 8;//帧数据长度 for(int i=0;iWriteCan(frame.can_id,frame.data,frame.can_dlc);//发数据,通过can端口-- 暂时默认 CAN0 端口 */ }
CANalyze 硬件的固件 CANalyze Firmware_c
CANalyze 固件 本机
Linux
CAN 接口。此固件可与 CANalyze 硬件一起使用。 特征
Linux
中的原生 CAN 接口 使用
Socket
CAN和8dev 设备驱动程序。 USB 2.0 FS 和 CAN 2.0 接口 支持 11 位和 29 位 CAN ID 正常、只听、环回和单发模式 报告 CAN 错误 用户定义的
波特率
完全使用开源软件构建 专为逆向工程而设计
Linux
Socket
编程实战第1季第1部分
课程特点: 1、手把手的实际操作过程;2、引导学员一步步去思考;3、网络技术方面初级的一步步进入
linux
socket
编程的世界;本课程是
linux
socket
编程的一小部分,从无名套接口开始,然后逐步深入,这应该是很多课程所没有的。以通俗的比照讲清楚一些概念,更多的是如何一步步通过代码去实现,并辅之以一些小的项目来更好的理解
linux
socket
编程的技巧和方法。
SOCKET
CAN编程如何
设置
CAN
波特率
socket
can代码编程,CAN总线
波特率
不是通过代码来
设置
的,而是通过终端命令就行配置。
Linux
socket
can调试测试记录
每次重新
设置
Can参数必须先关闭 ifconfig can0 down 比如要重新
设置
波特率
为1M ip link set can0 type can bitrate 1000000 #
设置
波特率
为 1M 开启 ifconfig can0 up
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章