Nếu tôi loại bỏ mã truyền từ Slave thì nó hoạt động đúng nhưng tôi cần truyền từ Slave.
Đây là mã chủ của tôi
#include <Wire.h>
void setup() {
Wire.begin(3);
Wire.onReceive(receiveEvent);
}
byte x = 0;
void loop() {
Wire.beginTransmission(9);
Wire.write("s");
Wire.write(x);
Wire.endTransmission();
x++;
delay(500);
}
void receiveEvent(int howMany) {
if(Wire.available()){
int x = Wire.read();
Serial.println(x);
}
}
Đây là mã nô lệ của tôi:
#include <Wire.h>
void setup() {
Wire.begin(9); // join i2c bus with address #9
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
void receiveEvent(int howMany) {
if(Wire.available()){
char c = Wire.read();
Serial.print(c);
if(c == 's'){
int x = Wire.read();
Serial.println(x);
//transmit to master
Wire.beginTransmission(3);
Wire.write(1);
Wire.endTransmission();
} else {
Wire.read();
}
}
}
Có thể không sử dụng Wire.onRequest (requestCallback); để gửi dữ liệu cho chủ? Giúp đỡ một cách tử tế.