From 4249c047420bf2c6bef0d59e9f3f398cac47342a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 23 Dec 2019 11:10:19 +0100 Subject: [PATCH] Bsongis/trainer sbus x9e (#7227) Fixex #5636 --- radio/src/gui/gui_common.cpp | 7 +++++++ radio/src/targets/common/arm/stm32/bluetooth_driver.cpp | 6 ++++++ radio/src/targets/taranis/board.cpp | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index d3b826b28..ca7dc4442 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -724,6 +724,13 @@ bool isTrainerModeAvailable(int mode) return false; #endif +#if defined(PCBX9E) + if (g_eeGeneral.bluetoothMode && mode == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE) { + // bluetooth uses the same USART than SBUS + return false; + } +#endif + #if defined(PCBTARANIS) && !defined(TRAINER_BATTERY_COMPARTMENT) if (mode == TRAINER_MODE_MASTER_BATTERY_COMPARTMENT) return false; diff --git a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp index 01349d56c..cbb9821c0 100644 --- a/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp +++ b/radio/src/targets/common/arm/stm32/bluetooth_driver.cpp @@ -107,6 +107,12 @@ void bluetoothInit(uint32_t baudrate, bool enable) void bluetoothDisable() { GPIO_SetBits(BT_EN_GPIO, BT_EN_GPIO_PIN); // close bluetooth (recent modules will go to bootloader mode) + USART_ITConfig(BT_USART, USART_IT_RXNE, DISABLE); + GPIO_InitTypeDef GPIO_InitStructure; + GPIO_InitStructure.GPIO_Pin = BT_RX_GPIO_PIN; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; + GPIO_Init(BT_USART_GPIO, &GPIO_InitStructure); + USART_DeInit(BT_USART); } extern "C" void BT_USART_IRQHandler(void) diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 2d7a980c7..2dfa0a886 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -116,7 +116,7 @@ void boardInit() BT_RCC_APB2Periph, ENABLE); -#if defined(BLUETOOTH) +#if defined(BLUETOOTH) && !defined(PCBX9E) bluetoothInit(BLUETOOTH_DEFAULT_BAUDRATE, true); #endif