无法从Arduino获取数据 - 蓝牙到Android设备

时间:2016-06-27 08:51:54

标签: android bluetooth arduino

我想在Arduino与蓝牙和Android设备之间进行通信

在Arduino,我正在使用

 SoftwareSerial.h 

以下是代码

#include <SoftwareSerial.h>
int ledPin1 = 5;
int state = 0;
int flag = 0;
SoftwareSerial mySerial(0, 1);
void setup() {
  // put your setup code here, to run once:
pinMode(ledPin1, OUTPUT);

digitalWrite(ledPin1, LOW);

Serial.begin(9600);
mySerial.begin(9600);
}

void loop() {
    // put your main code here, to run repeatedly:
    if(Serial.available()>0){
      state = Serial.read();
      flag = 0;
    }
    if (mySerial.available()) {
      int k = mySerial.read();
      mySerial.write(k);
    }
}

从Android方面我使用BluetoothSPPLibrary

有一个名为BluetoothService.java的类

因为有ConnectedThread

 public void run()
        {
            Log.d(TAG, "run: Called");
            byte[] buffer;
            ArrayList<Integer> arr_byte = new ArrayList<Integer>();

            // Keep listening to the InputStream while connected
            while (true) {
                try {
                    int data = mmInStream.read();
                    Log.d(TAG, "run: "+data);
                    if(data == 0x0A) { 
                    } else if(data == 0x0D) {
                        buffer = new byte[arr_byte.size()];
                        for(int i = 0 ; i < arr_byte.size() ; i++) {
                            buffer[i] = arr_byte.get(i).byteValue();
                        }
                        // Send the obtained bytes to the UI Activity
                        mHandler.obtainMessage(BluetoothState.MESSAGE_READ
                                , buffer.length, -1, buffer).sendToTarget();
                        arr_byte = new ArrayList<Integer>();
                    } else {
                        arr_byte.add(data);
                    }
                } catch (IOException e) {
                    connectionLost();
                    // Start the service over to restart listening mode
                    BluetoothService.this.start(BluetoothService.this.isAndroid);
                    break;
                }
            }
        }

但是

 int data = mmInStream.read(); 

这里的数据不是来自上面的代码

1 个答案:

答案 0 :(得分:0)

你在这里遗漏了一些信息。您使用哪个Arduino板?根据您尝试使用串行连接发送蓝牙的事实,我假设您有一个外部蓝牙芯片/板,这是什么?如果你正在使用一个,你绝对确定它正确连线。它是使用蓝牙还是低功耗蓝牙,两者有非常不同的协议。这些信息会有所帮助。