panthermx 发表于 2016-9-27 18:26:18

各位大神,再次发帖求助。关于arduino 驱动mcp2515CAN模块问题

本帖最后由 panthermx 于 2016-10-3 19:32 编辑

各位大神,再次发帖求助。
看了这位大神的帖子 利用Arduino自制汽车智能液晶仪表http://www.geek-workshop.com/thread-25584-1-1.html(出处: 极客工坊)
自己买了mcp2515的CAN模块,用大神提供的库文件驱动,结果无法驱动,在设置CAN网络速率的时候无法成功。
SPI接线没有问题。

但奇怪的是,虽然速率设定不成功,用万用表测量CAN线电压的时候,偶尔会收到长度为0的CAN报文,没有报文内容。



具体是下面这个命令执行不成功。下一步也没有办法测试。
/*********************************************************************************************************
** Function name:         init   ** Descriptions:            init can and set speed
*********************************************************************************************************/

INT8U MCP_CAN::begin(INT8U speedset)
{
   INT8U res;
    SPI.begin();
    res = mcp2515_init(speedset);
    if (res == MCP2515_OK) return CAN_OK;
    else return CAN_FAILINIT;
}


问了卖家说是这个MCP2515的板子不支持arduino,说是只有arduino版的才能配套使用。可是看文件并没有说明有这个区分。
也看了卖家给的51程序,库文件内容定义和arduino是一样的,没发现有什么不同。


已经研究了半个多月了,还是没有弄明白。难道真的是有arduino和51版本区别?


向各位大神求助,谢谢。

275891381 发表于 2016-9-28 18:37:47

用这个库吧,一直用这个 挺好的

panthermx 发表于 2016-9-29 10:12:33

本帖最后由 panthermx 于 2016-9-29 10:23 编辑

275891381 发表于 2016-9-28 18:37
用这个库吧,一直用这个 挺好的

感谢大神的再次帮助。
库文件已经下载,测试。但是问题还是一样的,CAN速率设置不成功。
软件用的是1.0.1版本的,把片选脚 也改成D9 和D10测试了,也不行。
还是没想明白问题在哪里,板子用的 NANO 接线用的引脚D10 11 12 13 中断用的D2
请大神帮忙再看一下。

275891381 发表于 2016-9-29 15:54:50

本帖最后由 275891381 于 2016-9-29 15:56 编辑

panthermx 发表于 2016-9-29 10:12
感谢大神的再次帮助。
库文件已经下载,测试。但是问题还是一样的,CAN速率设置不成功。
软件用的是1 ...


这个库cs用的是6,有的是9 你自己设定 不是默认的

panthermx 发表于 2016-9-29 19:47:44

感谢大神再次指导。
片选分别定义了D9 D10都试了一下,引脚接设定的引脚,还是设置不成功。
不知道大神用的2515的板子是不是有说明arduino 可用呢?
还是有什么细节被我忽略了?

panthermx 发表于 2016-9-29 19:48:50

275891381 发表于 2016-9-29 15:54
这个库cs用的是6,有的是9 你自己设定 不是默认的

感谢大神再次指导。
片选分别定义了D9 D10都试了一下,引脚接设定的引脚,还是设置不成功。
不知道大神用的2515的板子是不是有说明arduino 可用呢?
还是有什么细节被我忽略了?

275891381 发表于 2016-9-30 08:20:49

本帖最后由 275891381 于 2016-9-30 08:22 编辑

panthermx 发表于 2016-9-29 19:48
感谢大神再次指导。
片选分别定义了D9 D10都试了一下,引脚接设定的引脚,还是设置不成功。
不知道大神 ...

没说用D9 D10呀你看程序里面定义的是多少就用多少,我刚测试了下 能用的
我用的arduino uno   11--si 12--so 13---sck    const int SPI_CS_PIN = 6;

panthermx 发表于 2016-9-30 10:00:20

275891381 发表于 2016-9-30 08:20
没说用D9 D10呀你看程序里面定义的是多少就用多少,我刚测试了下 能用的
我用的arduino uno   11--s ...

大神
这次测试定义CS为9,接的也是D9
将设定CAN速率的部分改为只执行一次
串口显示速率设定失败
之后测量CAN线电压时,会出现接收到CAN报文,这样看来设备和通讯应该是正常的吧
用的杜邦线,也测了一下阻值,都在1欧姆一下。
还会有什么地方不对呢?

275891381 发表于 2016-9-30 10:26:36

panthermx 发表于 2016-9-30 10:00
大神
这次测试定义CS为9,接的也是D9
将设定CAN速率的部分改为只执行一次


看你有数据应该是,正常
是不是接线不稳定呀

panthermx 发表于 2016-9-30 10:54:38

本帖最后由 panthermx 于 2016-9-30 10:59 编辑

2758913812016-9-30 10:26



现在这个状态接入到车辆的CAN网络里,收不到任何报文。
不接去车辆CAN网络里,偶尔会有报文。应该是芯片电压波导致的错误信号。
因此判定是CAN速率设定不成功。
如果是接线不稳定,偶尔也能成功一次吧,现在一次都没有成功。
大神,买的2515的板子是对的吧。

275891381 发表于 2016-9-30 10:59:09

panthermx 发表于 2016-9-30 10:54
CANκ
CAN磬
жCAN趨о


库正常,你只能检查硬件了

panthermx 发表于 2016-9-30 11:03:38

275891381 发表于 2016-9-30 10:59
库正常,你只能检查硬件了

大神,关键问题,这个板子分不分arduino和51单片机 两个版本。
我买了2个,用这个库都一样。

275891381 发表于 2016-9-30 13:57:24

panthermx 发表于 2016-9-30 11:03
大神,关键问题,这个板子分不分arduino和51单片机 两个版本。
我买了2个,用这个库都一样。

板子肯定不分呀,两个难道都是初始化有问题吗?

panthermx 发表于 2016-9-30 16:02:40

275891381 发表于 2016-9-30 13:57
板子肯定不分呀,两个难道都是初始化有问题吗?

确实是两个板子都无法设置速率。
相同的情况,办公室和家里分别有一个,一个用NANO,一个UNO
都不行。实在是想不通了

275891381 发表于 2016-9-30 16:44:18

panthermx 发表于 2016-9-30 16:02
确实是两个板子都无法设置速率。
相同的情况,办公室和家里分别有一个,一个用NANO,一个UNO
都不行 ...

uno 不可能呀,我早晨试的还可以呢。真不行也无能为力了
页: [1] 2 3
查看完整版本: 各位大神,再次发帖求助。关于arduino 驱动mcp2515CAN模块问题