Aquesta aplicació estableix un canal entre dues micro: dispositius de bit. El canal es handeled com la comunicació UART. Vostè ha de desenvolupar un programm a cada micro: dispositiu de bit amb la transferència UART.
Indicació Aktive: Indicació BLE (per defecte)
Indicació inaktive: Notificació BLE
Aktive silenci: Sense registre visual
inaktive silenci: Registre
requisits:
- Min. Android 4.4
- Bluetooth Low Energy (BLE)
- Els dispositius vinculats
- Micro: Programm bits (desenvolupat per si mateix)
mbed exemple:
# Include "MicroBit.h"
# Include "MicroBitUARTService.h"
Microbit UBIT;
MicroBitUARTService * UART;
int connectat = 0;
onConnected anul·lar (MicroBitEvent e)
{
uBit.display.scroll ( "C");
connectada = 1;
}
onDisconnected anul·lar (MicroBitEvent e)
{
uBit.display.scroll ( "D");
connectada = 0;
}
onButtonA anul·lar (MicroBitEvent e)
{
si (== connectada 0) {
uBit.display.scroll ( "NC");
tornar;
}
uart-> enviar ( "Sí");
uBit.display.scroll ( "I");
}
onButtonB anul·lar (MicroBitEvent e)
{
si (== connectada 0) {
uBit.display.scroll ( "NC");
tornar;
}
uart-> enviar ( "n");
uBit.display.scroll ( "N");
}
onButtonAB anul·lar (MicroBitEvent e)
{
si (== connectada 0) {
uBit.display.scroll ( "NC");
tornar;
}
uart-> enviar ( "SK");
uBit.display.scroll ( "SK");
}
processBLEUart void () {
uint8_t readBuf [22];
while (1) {// bucle per sempre
if ((! connectat) || (! uart-> isReadable ())) {
uBit.sleep (50); // Espera de 50ms i comprovar de nou
continuar; // Bucle;
}
// Altres estem connectats i hi ha una mica d'entrada per llegir
si (uart-> isReadable ()) {
mentre que (uart-> isReadable ()) {
int = charCount uart-> read (readBuf, 22, async);
si (charCount! = 0) {
for (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
IMPORTANT !!!
Oherwise va a quedar sense memòria!
Recomanen desactivar els serveis de DFU i Esdeveniments en MicroBitConfig.h ja que no són necessaris aquí:
microbit-> Microbit-Dal-> INC> nucli-> MicroBitConfig.h
#define MICROBIT_BLE_DFU_SERVICE 0
#define MICROBIT_BLE_EVENT_SERVICE 0
0x500 #define MICROBIT_SD_GATT_TABLE_SIZE
* /
int main ()
{
// Inicia el micro: temps d'execució poc.
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 = new MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (i processBLEUart); // Crear fibra i programar-lo.
release_fiber ();
}
Data d'actualització:
30 de des. 2020