Go Down

Topic: Récupérer bits envoyés (Read 352 times) previous topic - next topic

sparadra1

Bonjours à tous.
Je n'arrive pas à afficher les données envoyées sur mon Bus CAN. Voilà ce que j'ai fait :

Code: [Select]

unsigned char Data_Id_0[1] = {0}; //Octet 1
unsigned char Data_Id_1[1] = {0}; //Octet 2
[...]
Data_Id_0[0]=0b00000001;
Data_Id_1[0]=0b00000001;
CAN.sendMsgBuf(0x00, 0, 1, Data_Id_0);
CAN.sendMsgBuf(0x00, 0, 1, Data_Id_1);
delay(1000);


Code: [Select]

// demo: CAN-BUS Shield, receive data
#include <mcp_can.h>
#include <SPI.h>

unsigned char Flag_Recv = 0;
unsigned char len = 0;
unsigned char buf[2];
char str[20];
int CAN_Id;
unsigned char Data_Id_0[1];
unsigned char Data_Id_1[1];

void setup()
{
  CAN.begin(CAN_500KBPS);                       // init can bus : baudrate = 500k
  attachInterrupt(0, MCP2515_ISR, FALLING);     // start interrupt
  Serial.begin(9600);
 
  pinMode(3, OUTPUT);
}

void MCP2515_ISR()
{
    Flag_Recv = 1;
}

void loop()
{
    if(Flag_Recv)                           // check if get data
    {
      Flag_Recv = 0;                        // clear flag
      
      Serial.println("CAN_BUS GET DATA!");
      
      // Test XM ////////////////////////////////////////////////////////////////////////
      CAN_Id = CAN.getCanId();
      CAN.readMsgBuf(&len, buf);            // read data,  len: data length, buf: data buf
      Serial.print("CAN_Id = ");
      Serial.println(CAN_Id);
      Serial.print("data len = ");
      Serial.println(len);

        Data_Id_0[0]=buf[0];    
        Serial.write(Data_Id_0[0]);
        
        Data_Id_1[0]=buf[0];    
        Serial.write(Data_Id_1[0]);
        
      
    }    
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/


Que faire ? Merci d'avance.

Go Up