如何编译Arduino ADK的hello world程序?

时间:2012-08-23 15:23:11

标签: android arduino adk

我所要做的就是从“使用Arduino开始使用Android ADK”一书中将Arduino编译为Android'hello world'程序。

这是代码

#include <Max3421e.h>
#include <Usb.h>
#include <AndroidAccessory.h>

#define ARRAY_SIZE 12

AndroidAccessory acc("Manufacturer", "Model", "Description",
                     "Version", "URI", "Serial");

char hello[ARRAY_SIZE] = {'h','e','l','l','o',' ',
                          'w','o','r','l','d','!'};

void setup() {
  Serial.begin(115200);
  acc.powerOn();
}

void loop() {
  if (acc.isConnected()) {
    for(int x = 0; x < ARRAY_SIZE; x++) {
      Serial.print(hello[x]);
      delay(250);
    }
    Serial.println();
    delay(250);
  }
}

我的错误

C:\Users\efossum\arduino-1.0.1\libraries\UsbHost/AndroidAccessory.h: In function 'void setup()':
C:\Users\efossum\arduino-1.0.1\libraries\UsbHost/AndroidAccessory.h:68: error: 'void AndroidAccessory::powerOn()' is private
sketch_aug23a:14: error: within this context

我查看了AndroidAccessory.h并且确定它是私有的,但我应该改变什么来使其工作?我认为使函数pulic不是答案。

4 个答案:

答案 0 :(得分:3)

似乎:

  acc.powerOn()

可以替换为:

  acc.begin();

答案 1 :(得分:0)

尝试使用Arduino 0.22或0.23 IDE

答案 2 :(得分:0)

答案也可能是在编译期间选择了错误的电路板。如果您选择了错误的电路板,Arduino软件无法决定您使用哪种芯片。

答案 3 :(得分:0)

我做到了!我只是公开read()标题中的<AndroidAccessory.h>函数的可见性,并使用begin()代替powerOn(),就像Mickaël所说的那样,现在代码编译成功了。