hc-06蓝牙模块和Android应用程序之间的错误数据

时间:2018-01-31 21:41:08

标签: android bluetooth character-encoding android-bluetooth arduino-esp8266

我正在使用连接到hc-06蓝牙模块的esp8266 NodeMCU 1.0。我正在尝试通过蓝牙通信发送JSON对象。

问题在于,由于某种原因,发送的信息不会像它应该的那样到达。

我同时使用两个softwareSerials

  • GPIO2 GPIO0,具有19200波特率

  • GPIO14 GPIO12,9600波特率

enter image description here

这就是我发送信息的方式,我正在使用ArduinoJson

StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["act"] = GET_WIFI_STATE;
  root["ws"] = getWifiState();
  root["ssid"] = WiFi.SSID();
  root.printTo(Serial);
  BT.write(' ');
  root.printTo(BT);
  BT.write('\n');

在Android部分,我收到的是BufferedReader

public void run() {
        InputStreamReader inputStreamReader = new InputStreamReader(mmInStream);
        BufferedReader br = new BufferedReader (inputStreamReader) ;
        while (true) {
            try {
                String pureText = br.readLine();
                String c = new String(pureText.getBytes(),"US-ASCII");
                actionHandler(c);
            } catch (IOException e) {
                Log.e("IOException", e.getCause() + "");
                break;
            }
        }
    }

我发送:

{"act":"GS","ws":3,"ssid":"CASTANO JARA"}

这是如何收到的:

{"act":"GS�,"ws":3,"ssid":"CASTANO JARA"}

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

我将hc 06模块中的波特率从9200更改为19200.这解决了问题