arduino UNO、arduino 2560和can总线-基于mcp2515的一些基础通讯

来源:互联网 发布:在淘宝上如何做代理 编辑:程序博客网 时间:2024/05/17 02:55

最近小白做了有关arduino和can总线的通信,先在网上买了基于Arduino的CAN模块,买的时候别买错了,要Arduino版的不是51版的(小白就买错一次)。

 然后,我就根据淘宝店家给的Arduino库和连线方式,用MEGA2560和CAN模块通信,但是串口显示Can init fail!!!最后我用Arduino UNO和CAN模块通信,串口显示出数据了。
   这个是CAN模块Arduino UNO连线方式:
它的库请在下面的连接下载。

       本来任务已经完成,不过对于MEGA2560一直不能通信我感到很好奇,于是我问了一下度娘,查到Arduino UNO的SPI引脚和MEGA2560的SPI引脚不同,
这个是MEGA2560的SPI引脚:

于是乎, 我又换了引脚,结果串口还是显示Can init fail!!!为什么啊!
没有办法,我只好用示波器来测这两个单片机的SPI因脚的波形,发现两个单片机的SCK引脚都是发出4MHZ的脉冲信号,MOSI发出的是载波信号,MISO发出的 是低电平(我测的是发送程序),只有SS信号不一样,哈哈,终于发现倪端了!尽管SS是SPI的片选信号,可是我用的CAN库里好像只认Arduino UNO的SPI的SS信号-10号引脚,于是我用2560的10号角接SS端,结果还是不行~
     最后,我在网上发现了另一个库,可以改SS信号的引脚,我就用了它的例程,把SS信号随便改了一个数字引脚,结果就成功了!而且Arduino UNO也可以用。
Arduino库:
仅Arduino UNO:可以用http://yun.baidu.com/s/1qX3adXy
Arduino UNO和MEGA2560都可以用:http://yun.baidu.com/s/1pKjzo4V


1 0