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.非常感谢,挺急的。。。
页: 1 [2] 3
查看完整版本: 各位大神,再次发帖求助。关于arduino 驱动mcp2515CAN模块问题