【问题标题】:I receive strange characters in Android from bluetooth connected to Arduino我从连接到 Arduino 的蓝牙收到 Android 中的奇怪字符
【发布时间】:2018-05-10 03:52:29
【问题描述】:

Arduino 接收数据没有问题,但是当我通过蓝牙从 arduino 接收 android 数据时,会出现奇怪的字符,例如 .下面是接收数据的方法代码:

private String convertInputToString() throws IOException {

    DataInputStream is = new DataInputStream(btSocket.getInputStream());

    char c;
    String s = "";

    do {
        c = (char) is.read();
        s += c + "";
    } while (c != '\n');

    return s;
}

我使用 Serial.println 传输 arduino 数据

我使用 Arduino Uno 和 Bluetoot HC-06

【问题讨论】:

    标签: java android bluetooth arduino


    【解决方案1】:

    请详细阅读 Android 开发者指南中的DataInputStream

    输入和输出流以纯字节处理,

    Android 还提供读取字节块和创建标准数据类型的方法。

    获取数据的正确方法是:

    byte[] readStream = new byte[LENGTH]; int howManyBytesInStream; howManyBytesInStream = is.read(readStream);

    你需要的数据存储在readStream中,并且

    howManyBytesInStream 是您实际读取的字节数。

    【讨论】:

    • 我如何确切知道要为 LENGTH 分配什么值?
    • 这取决于你处理的数据包的长度,你可以用最大数据包的长度来限制它们。我用的是1024,我处理的所有消息都小于这个长度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多