panthermx
发表于 2016-10-3 19:32:17
275891381 发表于 2016-9-30 16:44
uno 不可能呀,我早晨试的还可以呢。真不行也无能为力了
大神,今天抽空把新的pro mini的针脚焊上,用USB TTL烧了程序,设定速率成功了。
看来真的是板子有问题,只是不明白哪里坏了,UNO 和NANO一直在用,之前其他模块测试时都没问题的。
不过现在可以进行下一步测试了,感谢大神的帮助。
275891381
发表于 2016-10-4 16:02:40
panthermx 发表于 2016-10-3 19:32
大神,今天抽空把新的pro mini的针脚焊上,用USB TTL烧了程序,设定速率成功了。
看来真的是板子有问题 ...
可以就可以了
panthermx
发表于 2016-10-12 18:55:54
275891381 发表于 2016-10-4 16:02
可以就可以了
大神,再向你请教一下。
现在2块2515之间的通讯已经测试完了,没有异常。
但现在跟车辆的CAN网络通讯却不成功,车辆的CAN网络正常,用CAN工具接CAN盒可以检测到车辆网络,但CAN工具加CAN盒监测不到2515发送的数据。
CAN高低交换链接都测试了,完全没有数据。
不知道那里还有问题,请大神指点一下。
275891381
发表于 2016-10-13 17:22:17
panthermx 发表于 2016-10-12 18:55
大神,再向你请教一下。
现在2块2515之间的通讯已经测试完了,没有异常。
但现在跟车辆的CAN网络通讯却 ...
那可能是波特率 和can过滤与屏蔽设置不太对吧
panthermx
发表于 2016-10-13 18:41:56
275891381 发表于 2016-10-13 17:22
那可能是波特率 和can过滤与屏蔽设置不太对吧
大神,波特率是指CAN速率设置吗?
这个速率设置的是125K,车辆CAN速率也是125K,这个用CAN盒和诊断工具读取时就是设定的这个速率。
CAN过滤与屏蔽是要怎么查?才能确定类型?
275891381
发表于 2016-10-13 19:28:27
panthermx 发表于 2016-10-13 18:41
大神,波特率是指CAN速率设置吗?
这个速率设置的是125K,车辆CAN速率也是125K,这个用CAN盒和诊断工具 ...
最简单的就是发送 车速can信号请求 看看是否有车速信号帧
也就是发送obd信号帧试试
格式大约是
void CAN::CiARequest(uint8_t PID)
{
messageTx.id = ID_QUERY;
messageTx.header.rtr = 0;
messageTx.header.length = 8;
messageTx.data= 0x02;
messageTx.data= 0x01;
messageTx.data= PID;
sendMessage(&messageTx);
delay(5);
if (messageAvailable()) {
//Read the message buffers
getMessage(&messageRx);
}
}
unsigned int CAN::getVehicleSpeed()
{
unsigned int data;
CiARequest(VEHICLE_SPEED);
if (messageRx.id==ID_RESPONSE) {
data =uint16_t(messageRx.data);
#if (DEBUGMODE==1)
printMessage(&messageRx);
#endif
}
return data;
}
#define ID_QUERY 0x7DF
#define ID_RESPONSE 0x7E8
#define VEHICLE_SPEED 0x0D//01 0D 1 Vehicle speed 0 255 km/h A
panthermx
发表于 2016-10-13 19:35:33
275891381 发表于 2016-10-13 19:28
最简单的就是发送 车速can信号请求 看看是否有车速信号帧
也就是发送obd信号帧试试
也就是说,每个模块需要先发请求指令,其他设备才会将报文反馈回来。
那如果只是监听网络上的报文呢,是否也需要发送请求指令?
用库里自带的示例程序《 receive_check》是否可以实现监听?
还是说出了改CAN速率,还要改什么参数?
275891381
发表于 2016-10-13 19:39:14
panthermx 发表于 2016-10-13 19:35
也就是说,每个模块需要先发请求指令,其他设备才会将报文反馈回来。
那如果只是监听网络上的报文呢, ...
这个需要你自己好好了解下can协议了,慢慢尝试吧。有的你请求数据别人屏蔽了不会给你返回数据的,这个得看车的底层协议dbc文件了,最好用公开的车速 发动机专属等诊断协议试试自己的程序有问题没
panthermx
发表于 2016-10-13 19:52:45
275891381 发表于 2016-10-13 19:39
这个需要你自己好好了解下can协议了,慢慢尝试吧。有的你请求数据别人屏蔽了不会给你返回数据的,这个得 ...
大神,这下真的不明白了。
不知道大神有没有监听汽车CAN网络的例子给看一下。
非常感谢。
275891381
发表于 2016-10-13 20:03:20
本帖最后由 275891381 于 2016-10-13 20:07 编辑
panthermx 发表于 2016-10-13 19:52
大神,这下真的不明白了。
不知道大神有没有监听汽车CAN网络的例子给看一下。
非常感谢。
用这么慢的单片机就没能力监听,只能有屏蔽 过滤的接收处理一些吧,没有现成例子 你自己就尝试读取车速试试吧,这个方法是接到obd上等的can线
panthermx
发表于 2016-10-13 20:43:59
275891381 发表于 2016-10-13 20:03
用这么慢的单片机就没能力监听,只能有屏蔽 过滤的接收处理一些吧,没有现成例子 你自己就尝试读取车速 ...
大神,再问一下。
示例库里的SEND例程序发的报文是不是和汽车上用的报文结构不一样吗?
我在用SEND这个例程序测试时,使用CANtest接CAN盒并不能读取到报文,这是怎么回事?
275891381
发表于 2016-10-13 20:55:26
panthermx 发表于 2016-10-13 20:43
大神,再问一下。
示例库里的SEND例程序发的报文是不是和汽车上用的报文结构不一样吗?
我在用SEND这个 ...
can协议都一样 肯定可以呀,我记得好多程序的波特率错一倍,你用can检测仪放大一倍和缩小一倍贝特率都试试,或者用can盒子的波特率检测 检测波特率
panthermx
发表于 2016-10-13 21:05:27
275891381 发表于 2016-10-13 20:55
can协议都一样 肯定可以呀,我记得好多程序的波特率错一倍,你用can检测仪放大一倍和缩小一倍贝特率都试 ...
好的,我明白了。
明天先用用CAN盒再试一下,分别检测一下车辆和2515的波特率。
希望自己能成功。感谢大神的耐心指导,谢谢。:lol
panthermx
发表于 2016-10-19 10:31:30
panthermx 发表于 2016-10-13 21:05
好的,我明白了。
明天先用用CAN盒再试一下,分别检测一下车辆和2515的波特率。
希望自己能成功。感谢 ...
大神,现在还是没有办法跟车辆通讯:'(
CAN盒读取也没有任何显示,从100K到10K的波特率都试了,都没有反应。用的软件没有自动检测波特率的功能。
用两个2515互相通讯是可以的,串口有输出,为什么CAN盒检测不到呢?
看了很多资料,可以还是一知半解的,发现不了自己错在那里了。
大神再帮帮忙吧。
shaozuguang
发表于 2017-3-27 09:03:37
你好,我看到您2016年10月份在极客工坊里询问关于arduino和CAN的问题,您好像是已经解决了。我现在在用DUE和nano通讯,遇到了一点连线的问题,想请教一下您,不知道您可否不吝赐教。我的QQ是411940567.非常感谢,挺急的。。。