【问题标题】:Arduino & SeeedStudio CAN-BUS ShieldArduino & SeeedStudio CAN-BUS 扩展板
【发布时间】:2015-01-26 08:40:33
【问题描述】:

我已将我的 CAN-BUS 屏蔽连接到我的加热系统,并且我正在从总线获取数据。
这是有效的(我认为)。 但是,我无法获得我想要的数据。 请看附图。

CAN-open data

CAN-Bus Log

它说它在 CAN 开放的情况下运行,节点应该是 80(0X50 十六进制)。 但是,当我放置一个仅显示来自节点 80 的数据的过滤器时,我将无法获得任何数据。
另外,当我尝试不使用过滤器时,我不会从模块中获取任何数据!

它还说它每 1 秒发送一次心跳。这是我在节点 id 1862 (0X746 hex) 上找到的。

如何从模块中读取数据。

从屏蔽中读取的代码:

#include <SPI.h>
#include "mcp_can.h"

INT32U canId = 0x000;
MCP_CAN CAN(9); 

unsigned char len = 0;
unsigned char buf[11];
char str[40];


void setup()
{
    Serial.begin(38400);

START_INIT:

    if(CAN_OK == CAN.begin(CAN_125KBPS))
    {
        Serial.println("CAN BUS Shield init ok!");
    }
    else
    {
        Serial.println("CAN BUS Shield init fail");
        Serial.println("Init CAN BUS Shield again");
        delay(100);
        goto START_INIT;
    }
}


void loop()
{
    if(CAN_MSGAVAIL == CAN.checkReceive())  
      {
        CAN.readMsgBuf(&len, buf); 
        canId = CAN.getCanId();

               Serial.print("<");
              Serial.print(canId);
              for(int i = 0; i<len; i++)
                {
                  Serial.print(",");
                  Serial.print(buf[i]);
                }
            Serial.print(">");
            Serial.println();
      }
}

【问题讨论】:

  • 标签和goto 确实有它们的位置。使用它们而不是循环不是这样的地方。
  • 抱歉,Joachim 我不太清楚你在说什么!
  • 与你的问题无关,但不要使用goto作为实现循环的方式。
  • 还有谁可以帮忙???

标签: arduino can-bus


【解决方案1】:

代码是正确的,但是 mcp_can 库和兼容的防护罩可能存在一个问题。最初的 Seed-Studio 扩展板使用 16 MHz 晶体,但市场上还有其他兼容模块,并非所有模块都使用 16 MHz 晶体,有些使用 8 Mhz。

因此首先检查您要使用的 CAN 模块,如果它以 8 MHz 运行,您必须在初始化时调整速度设置。在这种情况下,如果您需要从运行速度为 125 kb/s 的 CAN 总线读取 CAN 消息,您必须在初始化中设置 CAN.begin(CAN_250KBPS)

...
   if(CAN_OK == CAN.begin(CAN_250KBPS))
...

检查您是否正确连接了 CAN HI 和 CAN LO。这可能是另一个问题。 检查您的 SPI_CS_PIN 是否设置正确(在您的 scetch 中是引脚 9 上的 CS)。

然后您应该通过在总线上发送 CAN 消息来检查您的连接/速度/CS - 该消息必须被您的 CAN 总线嗅探器捕获。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多