From 026d8e84f1c4f2058b2a41bded4710c830eca959 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 25 Apr 2019 16:12:06 +0200 Subject: [PATCH] Bluetooth flash firmware continued --- radio/src/bluetooth.cpp | 6 ++++-- radio/src/targets/common/arm/stm32/bluetooth_driver.cpp | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/radio/src/bluetooth.cpp b/radio/src/bluetooth.cpp index fabd50159..bac0503d9 100644 --- a/radio/src/bluetooth.cpp +++ b/radio/src/bluetooth.cpp @@ -490,6 +490,8 @@ void Bluetooth::sendBootloaderCommand(uint8_t command, const uint8_t * data, uin uint8_t Bluetooth::read(uint8_t * data, uint8_t size, uint32_t timeout) { + watchdogSuspend(timeout / 10); + uint8_t len = 0; while (len < size) { uint32_t elapsed = 0; @@ -500,6 +502,7 @@ uint8_t Bluetooth::read(uint8_t * data, uint8_t size, uint32_t timeout) return len; } } + data[len++] = byte; } return len; } @@ -528,8 +531,7 @@ void Bluetooth::flashFirmware(const char * filename) pausePulses(); - bluetoothInit(BLUETOOTH_BOOTLOADER_BAUDRATE, true); - bluetoothDisable(); /* go to bootloader mode */ + bluetoothInit(BLUETOOTH_BOOTLOADER_BAUDRATE, false); /* go to bootloader mode */ drawProgressScreen(getBasename(filename), "Bluetooth reset...", 0, 0); diff --git a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp index 1ad5998c3..4acd9a45a 100644 --- a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp +++ b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp @@ -89,7 +89,10 @@ void bluetoothInit(uint32_t baudrate, bool enable) bluetoothWriteState = BLUETOOTH_WRITE_IDLE; if (enable) { - GPIO_ResetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); // open bluetooth + GPIO_ResetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); + } + else { + GPIO_SetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); } }