5
我在通過I2C進行Arduino之間的通信時遇到問題。出於某種原因,onReceive
處理程序只被調用一次。I2C onReceive處理程序僅調用一次
主碼(發件人):
#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);
}
從編碼(接收器):
#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!");
}
在這個測試設置的想法是這樣,發送方發送一個字節的每第二,讓接收者通過打印消息來處理這個問題。但是,該消息僅打印一次。當我重新設置奴隸,它再次打印,但只是一次。
任何想法可能來自哪裏?
謝謝!很高興知道,儘管該項目早已結束。我會記住這一點以備將來參考,並在我有機會證實這一點時接受答案。 – JorenHeit