app ນີ້ຈະກໍ່ສ້າງຊ່ອງທາງການລະຫວ່າງສອງຈຸນລະພາກ: ອຸປະກອນຊ່ວຍ. ຊ່ອງທາງການຈະໄດ້ຮັບການ handeled ການສື່ສານ UART. ທ່ານມີການພັດທະນາໂຄງການໃນແຕ່ລະຈຸນລະພາກ: ອຸປະກອນນ້ອຍທີ່ມີການຍົກຍ້າຍ UART.
ໃຊ້ວຽກຂໍ້ບົ່ງໃຊ້: ຕົວຊີ້ວັດ BLE (ມາດຕະຖານ)
inaktive ບົ່ງຊີ້ແຈ້ງ BLE
ໃຊ້ວຽກ Silent: ການຕັດໄມ້ສາຍຕາ
inaktive Silent: ການຕັດໄມ້ທ່ອນ
ຕ້ອງການ:
- ນາທີ. Android 4.4
- ພະລັງງານ Bluetooth ຕ່ໍາ (BLE)
- ອຸປະກອນຄູ່
- ຈຸນລະພາກ: ໂຄງການ bit (ການພັດທະນາດ້ວຍຕົນເອງ)
ຕົວຢ່າງ MBED:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
MicroBit Ubit;
MicroBitUARTService * UART;
int ເຊື່ອມຕໍ່ = 0;
void onConnected (MicroBitEvent e)
{
uBit.display.scroll ( "C");
ເຊື່ອມຕໍ່ = 1;
}
void onDisconnected (MicroBitEvent e)
{
uBit.display.scroll ( "D");
ເຊື່ອມຕໍ່ = 0;
}
void onButtonA (MicroBitEvent e)
{
ຖ້າຫາກວ່າ (ເຊື່ອມຕໍ່ == 0) {
uBit.display.scroll ( "NC");
ການກັບຄືນ;
}
uart-> ສົ່ງ ( "Yes");
uBit.display.scroll ( "Y");
}
void onButtonB (MicroBitEvent e)
{
ຖ້າຫາກວ່າ (ເຊື່ອມຕໍ່ == 0) {
uBit.display.scroll ( "NC");
ການກັບຄືນ;
}
uart-> ສົ່ງ ( "ບໍ່ມີ");
uBit.display.scroll ( "N");
}
void onButtonAB (MicroBitEvent e)
{
ຖ້າຫາກວ່າ (ເຊື່ອມຕໍ່ == 0) {
uBit.display.scroll ( "NC");
ການກັບຄືນ;
}
uart-> ສົ່ງ ( "SK");
uBit.display.scroll ( "SK");
}
void processBLEUart () {
uint8_t readBuf [22]
ໃນຂະນະທີ່ (1) {// loop ສໍາລັບເຄີຍ
ຖ້າຫາກວ່າ ((! ຕໍ່) || (! uart-> isReadable ())) {
uBit.sleep (50) // ລໍຖ້າ 50ms ແລະກວດສອບອີກຄັ້ງ
ສືບຕໍ່; // loop;
}
// ອື່ນໆທີ່ພວກເຮົາມີການເຊື່ອມຕໍ່ແລະມີການປ້ອນຂໍ້ມູນບາງຢ່າງທີ່ຈະອ່ານ
ຖ້າຫາກວ່າ (uart-> isReadable ()) {
ໃນຂະນະທີ່ (uart-> isReadable ()) {
int charcounts = uart-> ອ່ານ (readBuf, 22, Async)
ຖ້າຫາກວ່າ (charcounts! = 0) {
for (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
ສໍາຄັນ !!!
Oherwise ທ່ານຈະດໍາເນີນການອອກຂອງຄວາມຊົງຈໍາ!
ແນະນໍາໃຫ້ປິດການໃຊ້ວຽກໄດ້ DFU ແລະກິດຈະກໍາການບໍລິການໃນ MicroBitConfig.h ນັບຕັ້ງແຕ່ພວກເຂົາເຈົ້າແມ່ນບໍ່ຈໍາເປັນທີ່ນີ້:
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 ()
{
// ມັ່ງຈຸລະພາກ: runtime bit.
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 = MicroBitUARTService ໃຫມ່ (* uBit.ble, 32, 32);
uBit.display.scroll ( "ໄປ");
create_fiber (ແລະ processBLEUart) // ສ້າງເສັ້ນໄຍແລະກໍາຫນົດເວລາ.
release_fiber ();
}
ອັບເດດແລ້ວເມື່ອ
30 ທ.ວ. 2020