Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
1054
Tıklama
0
Öne Çıkarma
Can Bus a veri gönderme (String to byte)
K
5 yıl
Çavuş
Konu Sahibi

Merhaba

Can Bus shield ile vei göndermeye çalışıyorum. Şöyle bir örnek kod var:

quote:

byte data[8] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};

void loop()
{
// send data: ID = 0x100, Standard CAN Frame, Data length = 8 bytes, 'data' = array of data bytes to send
byte sndStat = CAN0.sendMsgBuf(0x100, 0, 8, data);
if(sndStat == CAN_OK){
Serial.println("Message Sent Successfully!");
} else {
Serial.println("Error Sending Message...");
}
delay(100); // send data per 100ms
}


bu koddaki byte data değişkenini Run time da tanımlamak istiyorum. Fakat gidecek datanın boyutu her zaman farklı olabiliyor.
Bazen 3 byte bazen 8 byte oluyor.

Elimdeki data şu şekilde :

quote:


0x548 3 0x01 0x00 0x00

Buradaki 0x548 değeri id ,
3 rakamı byte uzunluğu
0x01 0x00 0x00 değeri gidecek olan byte bilgisi

bu koddaki 0x01 0x00 0x00 string değerini nasıl byte a çevirip gönderebilirim.

Arduino da 0x01 0x00 0x00 string değerini nasıl şu şekilde convert edebilirim:
byte data[3] = {0x01, 0x00, 0x00};
Burada 3 olan byte uzunluğunu da run time da ayarlamam geekiyor.

Ben elimdeki string veriyi strtok ile parse ediyorum.
ilk veri olan 0x548 string değerini de unsigned long a çevirmem gerekiyor.
Bu işlem için atol komutu yeterlimidir?

Yardım ve tavsiyeleriniz için şimdiden teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil