BLE_API wrapper library for STMicroelectronics' BlueNRG Bluetooth Low Energy expansion board shield
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/BlueNRGDevice.cpp
- Revision:
- 173:821942ac7d5a
- Parent:
- 169:485bbcddf0c3
- Child:
- 179:3bc6d59b9c81
--- a/source/BlueNRGDevice.cpp Mon Nov 09 08:36:16 2015 +0100 +++ b/source/BlueNRGDevice.cpp Tue Nov 10 06:25:29 2015 +0100 @@ -140,6 +140,14 @@ irq_.mode(PullDown); // betzw: set irq mode irq_.rise(&HCI_Isr); + // betzw - WORKAROUND: exploit current mbed 'InterruptIn' implementation + // to handle spurious BlueNRG interrupts + irq_.fall(&HCI_Isr); // attach IRQ handler & enable IRQ + irq_.fall(NULL); // this doesn't clear the attachment but just disables the IRQ! + // In this way spurious BlueNRG interrupts (e.g. IRQs happening + // even without being enabled) end up in a real IRQ handler + // function rather than in a NULL pointer (i.e. in a hard fault). + /* ToDo: Clear memory contents, reset the SD, etc. */ // By default, we set the device GAP role to PERIPHERAL btle_init(BlueNRGGap::getInstance().getIsSetAddress(), GAP_PERIPHERAL_ROLE_IDB04A1);