我正在与arduino和ADK合作,我在从Arduino-Sensors那里获取信息时遇到了问题。目前,我可以通过手机发送信息来控制LED或伺服系统。。但我不可能通过acc.write(msg,3)向智能手机发送数据。我正在使用此示例Dev-O-Rama,并尝试扩展此示例以获取传感器数据(未成功)。为了获取sensordata,我使用了ADK示例中的代码。每次我尝试用: acc.write(msg,3)从arduino发送数据时,似乎一切都冻结了。有没有人有一个有效的“小”例子或一个提示,什么会导致这种行为?
LG Marcel
发布于 2012-04-11 20:57:00
我猜是Android应用程序冻结了吧?
尝试在我的project中使用USBControl库
arduino编写的代码非常简单:
//Batt update, 0.1 Hz loop
if (acc.isConnected() && millis()-timer_batt >= 1000/BATT_FREQ) {
timer_batt = millis();
//Serial.print("b");
msg[0] = SYNC;
msg[1] = BATTERY_LEVEL;
msg[2] = getBatt();
acc.write(msg, 3);
}确保你限制了写作的频率,并且阅读的速度要足够快。有一个奇怪的行为,如果有太多的数据被缓冲,连接将看起来是挂起的。
发布于 2012-03-19 19:30:52
在不知道要发送的数据类型的情况下,很难说出该怎么做。基本上,您必须确保使用带有正确参数的acc.write()方法。第一个是字节数组本身,第二个是数组中的字节数。因此,如果字节数组的大小是5字节,则需要这样命名它:acc.write(msg, 5)。
更好的做法是使用sizeof Arduino函数使其更具动态性:
acc.write(msg, sizeof(msg));https://stackoverflow.com/questions/9032314
复制相似问题