Hierdie inligting stel 'n kanaal tussen twee mikro: bietjie toestelle. Die kanaal sal baie versigtig as UART kommunikasie. Jy moet 'n program op elke mikro ontwikkel: bietjie toestel met UART oordrag.
Aanduiding Aktiewe: BLE aanduiding (Standaard)
Aanduiding inaktive: BLE Kennisgewing
Silent Aktiewe: Geen visuele meld
Silent inaktive: Logging
vereistes:
- Min. Android 4.4
- Bluetooth Low Energy (BLE)
- Gepaarde toestelle
- Mikro: bietjie program (ontwikkel deur jouself)
MBED byvoorbeeld:
# include "MicroBit.h"
# include "MicroBitUARTService.h"
MicroBit uBit;
MicroBitUARTService * UART;
int verbind = 0;
nietig onConnected (MicroBitEvent e)
{
uBit.display.scroll ( "C");
verbind = 1;
}
nietig onDisconnected (MicroBitEvent e)
{
uBit.display.scroll ( "D");
verbind = 0;
}
nietig onButtonA (MicroBitEvent e)
{
As (verbind == 0) {
uBit.display.scroll ( "NC");
terugkeer;
}
uart-> stuur ( "Ja");
uBit.display.scroll ( "Y");
}
nietig onButtonB (MicroBitEvent e)
{
As (verbind == 0) {
uBit.display.scroll ( "NC");
terugkeer;
}
uart-> stuur ( "Nee");
uBit.display.scroll ( "N");
}
nietig onButtonAB (MicroBitEvent e)
{
As (verbind == 0) {
uBit.display.scroll ( "NC");
terugkeer;
}
uart-> stuur ( "SK");
uBit.display.scroll ( "SK");
}
leemte processBLEUart () {
uint8_t readBuf [22];
terwyl (1) {// lus vir ewig
As ((! verbind) || (! uart-> isReadable ())) {
uBit.sleep (50); // Wag 50ms en weer na te gaan
aanhou; // Lus;
}
// Anders wat ons verbind en daar is 'n paar insette te lees
As (uart-> isReadable ()) {
terwyl (uart-> isReadable ()) {
int charCount = uart-> lees (readBuf, 22, asinkroniseer);
As (charCount! = 0) {
vir (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
BELANGRIK !!!
Oherwise jy sal loop uit geheue!
Beveel die aanskakel van die DFU en Event dienste in MicroBitConfig.h omdat hulle nie hier nodig:
microbit-> microbit-dal-> inc-> core-> MicroBitConfig.h
# define MICROBIT_BLE_DFU_SERVICE 0
# define MICROBIT_BLE_EVENT_SERVICE 0
# define MICROBIT_SD_GATT_TABLE_SIZE 0x500
* /
int main ()
{
// Inisialiseer die mikro: bietjie runtime.
uBit.init ();
uBit.messageBus.listen (MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected);
uBit.messageBus.listen (MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected);
uBit.messageBus.listen (MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);
uBit.messageBus.listen (MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);
uBit.messageBus.listen (MICROBIT_ID_BUTTON_AB, MICROBIT_BUTTON_EVT_CLICK, onButtonAB);
UART = nuwe MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (& processBLEUart); // Skep vesel en skeduleer nie.
release_fiber ();
}
Opgedateer op
30 Des. 2020