Arduinolar arasında I2C üzerinden haberleşme konusunda sorun yaşıyorum. Bazı nedenlerden dolayı, işleyicisi yalnızca bir kez çağrılmaktadır.I2C onReceive-Handler sadece bir kez çağrıldı
Usta Kodu (gönderici):
#include <Wire.h>
#include "i2csettings.h" // defines address
void setup()
{
Wire.begin(I2C_MASTER_ADDRESS);
}
void loop()
{
Wire.beginTransmission(I2C_SLAVE_ADDRESS);
Wire.write(0x11);
Wire.endTransmission();
delay(1000);
}
Köle Kodu (alıcı): bu test-kurulumunda fikri gönderen her bir byte göndermek sahip olmaktır
#include <Wire.h>
#include "i2csettings.h"
void takeAction(int);
void setup()
{
Serial.begin(9600);
Wire.begin(I2C_SLAVE_ADDRESS);
Wire.onReceive(takeAction);
}
void loop()
{}
void takeAction(int nBytes)
{
Serial.println("Action!");
}
ikincisi, alıcının bir mesaj yazarak harekete geçmesini sağlayın. Ancak, mesaj sadece bir kez basılır. Slave'i sıfırladığımda tekrar basıldı, ama sadece bir kez.
Bunun nereden gelebileceği hakkında bir fikir var mı?
Teşekkürler! Projenin bir süre sonra bitmesine rağmen, bilmek çok güzel. Bunu akılda tutmak için aklıma devam edeceğim ve bunu onaylama şansım olduğunda cevabı kabul edeceğim. – JorenHeit