我想通过蓝牙将消息从Micro:Bit发送到链接的设备。我有以下Micro:Bit代码:

#include "MicroBit.h"
#include "MicroBitUARTService.h"

MicroBitUARTService *uart;
MicroBit uBit;

uint8_t connected = 0;

void onConnect(MicroBitEvent)
{
    connected = 1;
    uBit.display.print("C");
}

void onDisconnect(MicroBitEvent)
{
    connected = 0;
    uBit.display.print("D");
}

void onButtonA(MicroBitEvent e)
{
    if (connected == 0) {
        uBit.display.print("X");
        return;
    }
    uart->send("Button A");
    uBit.display.print("A");
}

void onButtonB(MicroBitEvent e)
{
    if (connected == 0) {
        uBit.display.print("X");
        return;
    }
    uart->send("Button B");
    uBit.display.print("B");
}

int main()
{
    // Initialise the micro:bit runtime.
    uBit.init();

    uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnect);
    uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnect);
    uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);
    uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);

    uart = new MicroBitUARTService(*uBit.ble, 32, 32);
    uBit.display.print("S");

    release_fiber();
}


我可以使用以下工具将其与Macbook配对:

c++ - Micro:位读取蓝牙消息-LMLPHP

配对后,我不知道如何阅读通过uart蓝牙发送的消息。

最佳答案

不要让特性名称中的术语UART混淆,它只是一个标准特性,与实际UART无关。

根据文档,指示符与UART TX特性一起使用,因此请查看如何使用API​​中的指示符。

https://lancaster-university.github.io/microbit-docs/resources/bluetooth/bluetooth_profile.html



https://lancaster-university.github.io/microbit-docs/ble/uart-service/#example-microbit-application-animal-vegetable-mineral-game用于Android示例。

马丁

更多....

根据我上面提供链接的配置文件文档,您可以写RX特性,但必须订阅指示TX特性。您无法直接阅读。

在Raspberry Pi上,我将使用Noble node.hs模块:

https://github.com/sandeepmistry/noble

用于指示使用

feature.subscribe([callback(error)]);



feature.on('data',callback(data,isNotification));

用于写作

feature.write(data,withoutResponse [,callback(error)]); //数据是缓冲区,而没有Response为true | false

我知道您对电话不感兴趣,但是原理是完全一样的,无论您要编码的平台还是所使用的API。您只需要知道每个特征支持哪些操作,然后相应地使用您的API即可。

关于c++ - Micro:位读取蓝牙消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48648088/

10-12 01:38