0

我正在使用带有 USB hostshield (sparkfun) 的 Arduino,它连接到 Android 手机。当我将数据从智能手机发送到 arduino 时,就没有问题了。但是,当我从 arduino 向 Android 智能手机发送数据时,会收到数据(我收到一条消息,提示处理程序已被触发),但应用程序在几个周期后崩溃。我使用来自 Microbridge 的 de Adb 库。

从 arduino 发送的数据uint16_t与数字 800 一样,这发生在以下循环中(也包括设置):

void setup()
{
   Serial.begin(57600);

   // Record time for sensor polling timer
   lastTime = millis();

  // Init the ADB subsystem.
  ADB::init();

 // Open an ADB stream to the phone's shell. Auto-reconnect. Use port number 4568
 connection = ADB::addConnection("tcp:4568", true, adbEventHandler);  

 Serial.println("Ready!");
}


void loop()
{
  //Check if sensor should be sampled.
  if ((millis() - lastTime) > 1000)
  {

   int number = 800;
   uint16_t data = number;
   Serial.println("Before send");
   connection->write(sizeof(data), (uint8_t*)&data);
   Serial.println("After send");

   // Update timer for sensor check
   lastTime = millis();
}

  // Poll the ADB subsystem.
  ADB::poll();
}

数据在处理程序中的 Android 上接收如下(它使用来自 Microbridge 的 lightwight 服务器):

server.addListener(new AbstractServerListener() {


@Override
public void onReceive(com.example.communicationmodulebase.Client client, byte[] data){

    Log.e(TAG, "In handler!");
   if (data.length < 1){
  return;
  }

    TextView textRecvStatus = (TextView) findViewById(R.id.RecvStatusText);

    textRecvStatus.setText("In handler!");

   }
});  

消息:“在处理程序中!” 显示,但在收到应用程序字符数后。

有谁知道为什么应用程序崩溃?由于 Android 智能手机已连接到 arduino shield,我无法阅读目录日志。据我所知,没有办法显示目录数据(我可能是错的)。

欢迎任何建议和提示!

4

0 回答 0