我是个新手,所以请耐心听我说--我真的很感谢你的帮助。
我正在尝试将Android Nexus One与连接到BlueSmirf的arduino (Duemilanove)连接起来。我有一个程序,它只是将字符串"Hello Bluetooth“输出到BlueSmirf所连接的任何设备上。以下是Arduino程序:
void setup(){ Serial.begin(115200);int i;}
void loop(){Serial.print("Hello Bluetooth!");delay(1000);}
在我的电脑BT终端上,我可以看到这条消息,并且连接没有问题。问题出在我的android代码上。我可以使用android连接到设备,但当我查看日志时,它没有显示"Hello Bluetooth“。以下是调试日志:
04-09 16:27:49.022:错误/BTArduino(17288):FireFly-2583已连接
04-09 16:27:49.022:错误/BTArduino(17288):开始连接套接字
04-09 16:27:55.705:错误/BTArduino(17288):接收时间: 16
04-09 16:27:56.702:错误/BTArduino(17288):已接收:1
04-09 16:27:56.712:错误/BTArduino(17288):接收时间: 15
04-09 16:27:57.702:错误/BTArduino(17288):已接收:1
04-09 16:27:57.702:错误/BTArduino(17288):接收时间: 15
04-09 16:27:58.704:错误/BTArduino(17288):已接收:1
04-09 16:27:58.704:错误/BTArduino(17288):接收时间: 15
ect...
这里是代码,我试着只放置相关的代码,但如果你需要更多,请让我知道:
private class ConnectThread extends Thread {
private final BluetoothSocket mySocket;
private final BluetoothDevice myDevice;
public ConnectThread(BluetoothDevice device) {
myDevice = device;
BluetoothSocket tmp = null;
try {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
} catch (IOException e) {
Log.e(TAG, "CONNECTION IN THREAD DIDNT WORK");
}
mySocket = tmp;
}
public void run() {
Log.e(TAG, "STARTING TO CONNECT THE SOCKET");
InputStream inStream = null;
boolean run = false;
//...More Connection code here...这里有更多相关的代码:
byte[] buffer = new byte[1024];
int bytes;
// handle Connection
try {
inStream = mySocket.getInputStream();
while (run) {
try {
bytes = inStream.read(buffer);
Log.e(TAG, "Received: " + bytes);
} catch (IOException e3) {
Log.e(TAG, "disconnected");
}
}我正在读取字节=inStream.read(缓冲区)。我知道字节是一个整数,所以我尝试通过蓝牙发送整数,因为" bytes“是一个整数,但它仍然没有意义。
几乎可以看出发送的波特率不正确。这是真的吗?
任何帮助都将不胜感激。非常感谢。
发布于 2010-04-11 23:59:53
你看过这个项目吗?http://code.google.com/p/android-arduino/
干杯
发布于 2010-05-02 04:07:25
read()返回它成功读入缓冲区的字节数。因此,在这行代码中:
bytes = inStream.read(buffer);…您的消息将在buffer的第一个bytes字节中找到(假设其他内容都是正确的)。您可以将它们转换为字符串,如下所示:
String message = new String(buffer, 0, bytes);我在这里介绍了一些事情(编码,连接多个缓冲区,等等),但这应该能让你入门。
https://stackoverflow.com/questions/2610783
复制相似问题