Hi,
Currently I'm setting up an application for CAN communication based on 29-bits identifiers using an Arduino Uno and the Sparkfun CAN shield:
Sending 29-bit CAN messages is working without any problems by setting a "extended" flag. Receiving 29-bit CAN messages is not working.
#include <SPI.h>
#include <CAN.h>unsigned long last;
unsigned long now;CanMessage sendMessage;
CanMessage receiveMessage;void setup()
{
CAN.begin(CAN_SPEED_125000);
CAN.setMode (CAN_MODE_NORMAL);
Serial.begin(4800);
}void loop()
{
/* Send a new value every second */
now = millis();
if (now > last + 1000) {
last = now;
sendMessage.clear ();
sendMessage.id = 0x666;
sendMessage.extended = 1;
sendMessage.setIntData (receiveMessage.data[3]);
sendMessage.send ();
}/* Receive data if available */
if (CAN.available()) {
Serial.println(CAN.available());
receiveMessage = CAN.getMessage ();
}
}
Somebody knows why I cannot receive 29-bit CAN messages?
Attached the libraries I'm using.
Thanks
CAN.zip (12.8 KB)