diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 29ecec0db..d91fa2627 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -26,6 +26,7 @@ #include "opentx.h" #include "libopenui.h" #include "hal/adc_driver.h" +#include "aux_serial_driver.h" #define SET_DIRTY() storageDirty(EE_GENERAL) diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index a17f264e5..6aa47af37 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -21,6 +21,7 @@ #include #include "hal/adc_driver.h" +#include "aux_serial_driver.h" #if defined(PCBTARANIS) enum { diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 240477212..e79b5f31d 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -27,6 +27,7 @@ #include "api_filesystem.h" #include "telemetry/frsky.h" #include "telemetry/multi.h" +#include "aux_serial_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 023404666..fdf5d543b 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -22,6 +22,7 @@ #include "opentx.h" #include "io/frsky_firmware_update.h" #include "hal/adc_driver.h" +#include "aux_serial_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index 99e0577fc..0df948283 100644 --- a/radio/src/serial.cpp +++ b/radio/src/serial.cpp @@ -23,6 +23,7 @@ #include "serial.h" #include #include +#include "aux_serial_driver.h" #define PRINTF_BUFFER_SIZE 128 diff --git a/radio/src/targets/common/arm/stm32/aux_serial_driver.h b/radio/src/targets/common/arm/stm32/aux_serial_driver.h new file mode 100644 index 000000000..58a764973 --- /dev/null +++ b/radio/src/targets/common/arm/stm32/aux_serial_driver.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include + +#include "hal/serial_driver.h" + +#if defined(AUX_SERIAL) +extern uint8_t auxSerialMode; +void auxSerialSetup(unsigned int baudrate, bool rx_enable, + uint8_t word_length = ETX_WordLength_8, + uint8_t parity = ETX_Parity_None, + uint8_t stop_bits = ETX_StopBits_One); +void auxSerialInit(unsigned int mode, unsigned int protocol); +void auxSerialPutc(char c); +void auxSerialSbusInit(); +void auxSerialStop(); +uint8_t auxSerialTracesEnabled(); +#endif + +#if defined(AUX2_SERIAL) +extern uint8_t aux2SerialMode; +void aux2SerialSetup(unsigned int baudrate, bool rx_enable, + uint8_t word_length = ETX_WordLength_8, + uint8_t parity = ETX_Parity_None, + uint8_t stop_bits = ETX_StopBits_One); +void aux2SerialInit(unsigned int mode, unsigned int protocol); +void aux2SerialPutc(char c); +void aux2SerialSbusInit(); +void aux2SerialStop(); +uint8_t aux2SerialTracesEnabled(); +#endif + diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 1f81adda0..936da58b6 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -655,15 +655,7 @@ void sportUpdatePowerInit(); #define LUA_DEFAULT_BAUDRATE 115200 #endif #if defined(AUX_SERIAL) -extern uint8_t auxSerialMode; -#if defined __cplusplus -void auxSerialSetup(unsigned int baudrate, bool dma, uint16_t length = USART_WordLength_8b, uint16_t parity = USART_Parity_No, uint16_t stop = USART_StopBits_1); -#endif -void auxSerialInit(unsigned int mode, unsigned int protocol); -void auxSerialPutc(char c); #define auxSerialTelemetryInit(protocol) auxSerialInit(UART_MODE_TELEMETRY, protocol) -void auxSerialSbusInit(); -void auxSerialStop(); void auxSerialPowerOn(); void auxSerialPowerOff(); #if defined(AUX_SERIAL_PWR_GPIO) @@ -677,15 +669,7 @@ void auxSerialPowerOff(); // Aux2 serial port driver #if defined(AUX2_SERIAL) -extern uint8_t aux2SerialMode; -#if defined __cplusplus -void aux2SerialSetup(unsigned int baudrate, bool dma, uint16_t length = USART_WordLength_8b, uint16_t parity = USART_Parity_No, uint16_t stop = USART_StopBits_1); -#endif -void aux2SerialInit(unsigned int mode, unsigned int protocol); -void aux2SerialPutc(char c); #define aux2SerialTelemetryInit(protocol) aux2SerialInit(UART_MODE_TELEMETRY, protocol) -void aux2SerialSbusInit(); -void aux2SerialStop(); void aux2SerialPowerOn(); void aux2SerialPowerOff(); #if defined(AUX2_SERIAL_PWR_GPIO) diff --git a/radio/src/targets/horus/gps_driver.cpp b/radio/src/targets/horus/gps_driver.cpp index eb814d03c..78e3679f7 100644 --- a/radio/src/targets/horus/gps_driver.cpp +++ b/radio/src/targets/horus/gps_driver.cpp @@ -82,6 +82,9 @@ void gpsSendByte(uint8_t byte) USART_ITConfig(GPS_USART, USART_IT_TXE, ENABLE); } +#define USART_FLAG_ERRORS \ + (USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE | USART_FLAG_PE) + extern "C" void GPS_USART_IRQHandler(void) { // Send diff --git a/radio/src/targets/horus/trainer_driver.cpp b/radio/src/targets/horus/trainer_driver.cpp index 28334ed9d..cf3355f2c 100644 --- a/radio/src/targets/horus/trainer_driver.cpp +++ b/radio/src/targets/horus/trainer_driver.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "aux_serial_driver.h" void trainerSendNextFrame(); diff --git a/radio/src/targets/nv14/board.h b/radio/src/targets/nv14/board.h index 5c0f23b44..41c63a037 100644 --- a/radio/src/targets/nv14/board.h +++ b/radio/src/targets/nv14/board.h @@ -507,15 +507,8 @@ void hapticOn(uint32_t pwmPercent); //#define AUX_SERIAL #define DEBUG_BAUDRATE 115200 #define LUA_DEFAULT_BAUDRATE 115200 -extern uint8_t auxSerialMode; -#if defined __cplusplus -void auxSerialSetup(unsigned int baudrate, bool dma, uint16_t length = USART_WordLength_8b, uint16_t parity = USART_Parity_No, uint16_t stop = USART_StopBits_1); -#endif -void auxSerialInit(unsigned int mode, unsigned int protocol); -void auxSerialPutc(char c); #define auxSerialTelemetryInit(protocol) auxSerialInit(UART_MODE_TELEMETRY, protocol) -void auxSerialSbusInit(); -void auxSerialStop(); + #if defined(AUX_SERIAL_PWR_GPIO) #define AUX_SERIAL_POWER_ON() auxSerialPowerOn() #define AUX_SERIAL__POWER_OFF() auxSerialPowerOff() @@ -523,7 +516,6 @@ void auxSerialStop(); #define AUX_SERIAL_POWER_ON() #define AUX_SERIAL__POWER_OFF() #endif -#define USART_FLAG_ERRORS (USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE | USART_FLAG_PE) extern uint8_t currentTrainerMode; void checkTrainerSettings(); diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 12239e6cf..a1d6d1f35 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -865,15 +865,7 @@ void hapticOff(); #define DEBUG_BAUDRATE 115200 #define LUA_DEFAULT_BAUDRATE 115200 #define AUX_SERIAL -extern uint8_t auxSerialMode; -#if defined __cplusplus -void auxSerialSetup(unsigned int baudrate, bool dma, uint16_t length = USART_WordLength_8b, uint16_t parity = USART_Parity_No, uint16_t stop = USART_StopBits_1); -#endif -void auxSerialInit(unsigned int mode, unsigned int protocol); -void auxSerialPutc(char c); #define auxSerialTelemetryInit(protocol) auxSerialInit(UART_MODE_TELEMETRY, protocol) -void auxSerialSbusInit(); -void auxSerialStop(); #define AUX_SERIAL_POWER_ON() #define AUX_SERIAL_POWER_OFF() #endif diff --git a/radio/src/targets/taranis/telemetry_driver.cpp b/radio/src/targets/taranis/telemetry_driver.cpp index 483a15adb..8709dfbb6 100644 --- a/radio/src/targets/taranis/telemetry_driver.cpp +++ b/radio/src/targets/taranis/telemetry_driver.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "aux_serial_driver.h" Fifo telemetryFifo; uint32_t telemetryErrors = 0; diff --git a/radio/src/telemetry/crossfire.cpp b/radio/src/telemetry/crossfire.cpp index a1dbb1629..257a18faa 100644 --- a/radio/src/telemetry/crossfire.cpp +++ b/radio/src/telemetry/crossfire.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "aux_serial_driver.h" const CrossfireSensor crossfireSensors[] = { {LINK_ID, 0, STR_SENSOR_RX_RSSI1, UNIT_DB, 0}, diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 85b72e75e..6f0b0e6b1 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "aux_serial_driver.h" void processFrskyTelemetryData(uint8_t data) { diff --git a/radio/src/telemetry/ghost.cpp b/radio/src/telemetry/ghost.cpp index 9ed24c74d..525ea3642 100755 --- a/radio/src/telemetry/ghost.cpp +++ b/radio/src/telemetry/ghost.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "aux_serial_driver.h" const char *ghstRfProfileValue[GHST_RF_PROFILE_COUNT] = { "Auto", "Norm", "Race", "Pure", "Long", "Unused", "Race2", "Pure2" }; const char *ghstVtxBandName[GHST_VTX_BAND_COUNT] = { "- - -" , "IRC", "Race", "BandE", "BandB", "BandA" }; diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index b0bfecc23..c43edfd5f 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -22,6 +22,7 @@ #include "telemetry.h" #include "multi.h" #include "io/multi_protolist.h" +#include "aux_serial_driver.h" constexpr int32_t MULTI_DESIRED_VERSION = (1 << 24) | (3 << 16) | (3 << 8) | 0; #define MULTI_CHAN_BITS 11 diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 76781a037..bc65bc6a7 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -25,6 +25,7 @@ #include "pulses/flysky.h" #include "mixer_scheduler.h" #include "io/multi_protolist.h" +#include "aux_serial_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/trainer.cpp b/radio/src/trainer.cpp index 4206738b2..4840ebc9c 100644 --- a/radio/src/trainer.cpp +++ b/radio/src/trainer.cpp @@ -21,6 +21,7 @@ #include "opentx.h" #include "heartbeat_driver.h" +#include "aux_serial_driver.h" int16_t ppmInput[MAX_TRAINER_CHANNELS]; uint8_t ppmInputValidityTimer;