据我所知,在尝试通过i2c接收数据时,我可以在arduino中使用以下代码:
#include <Wire.h>
void setup() {
Wire.begin(0x04); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
void receiveEvent(int howMany) {
while (1 < Wire.available()) { // loop through all but the last
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}
但是如果我不想在void.setup中使用onReceive命令并使用类似下面代码的函数接收该怎么办:
void receiveData() {
Wire.begin(0x04);
while(Wire.available()) {
if(x==4) { x=0;}
data[x]=Wire.read();
x++;
}
}
我想这样做是因为我必须读取传感器并同时从树莓派中接收数组。 这可行吗?
BTW我使用的是arduino nano和raspberry pi 3,传感器是MPU6050。