通过i2c接收数据时是否可以不使用onReceive命令?

时间:2017-12-17 16:24:35

标签: arduino raspberry-pi i2c

据我所知,在尝试通过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。

0 个答案:

没有答案