mirror of
https://github.com/opentx/opentx.git
synced 2025-07-14 20:10:08 +03:00
tx16s aux fixes
This commit is contained in:
parent
0609cdb2d3
commit
318e4dd516
6 changed files with 45 additions and 9 deletions
|
@ -1634,9 +1634,9 @@ Reads characters from the serial port. The string is allowed to contain any char
|
|||
*/
|
||||
static int luaSerialRead(lua_State * L)
|
||||
{
|
||||
#if defined(LUA) && !defined(CLI)
|
||||
int num = luaL_optunsigned(L, 1, 0);
|
||||
|
||||
#if defined(LUA) && !defined(CLI)
|
||||
if (!luaRxFifo) {
|
||||
luaRxFifo = new Fifo<uint8_t, LUA_FIFO_SIZE>();
|
||||
if (!luaRxFifo) {
|
||||
|
|
|
@ -41,7 +41,7 @@ extern "C" {
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(CLI)
|
||||
#if !defined(CLI) || defined(AUX2_SERIAL)
|
||||
#define LUA_FIFO_SIZE 256
|
||||
extern Fifo<uint8_t, LUA_FIFO_SIZE> * luaRxFifo;
|
||||
#endif
|
||||
|
|
|
@ -101,6 +101,7 @@ void auxSerialInit(unsigned int mode, unsigned int protocol)
|
|||
#if defined(CROSSFIRE)
|
||||
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
auxSerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
||||
AUX_SERIAL_POWER_OFF();
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
@ -110,17 +111,20 @@ void auxSerialInit(unsigned int mode, unsigned int protocol)
|
|||
#if defined(DEBUG) || defined(CLI)
|
||||
case UART_MODE_DEBUG:
|
||||
auxSerialSetup(DEBUG_BAUDRATE, false);
|
||||
AUX_SERIAL_POWER_OFF();
|
||||
break;
|
||||
#endif
|
||||
|
||||
case UART_MODE_TELEMETRY:
|
||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
auxSerialSetup(FRSKY_D_BAUDRATE, true);
|
||||
AUX_SERIAL_POWER_OFF();
|
||||
}
|
||||
break;
|
||||
|
||||
case UART_MODE_LUA:
|
||||
auxSerialSetup(DEBUG_BAUDRATE, false);
|
||||
AUX_SERIAL_POWER_ON();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -192,7 +196,7 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(LUA) && !defined(CLI)
|
||||
#if defined(LUA) & !defined(CLI)
|
||||
if (luaRxFifo && auxSerialMode == UART_MODE_LUA) {
|
||||
// Receive
|
||||
uint32_t status = AUX_SERIAL_USART->SR;
|
||||
|
@ -204,6 +208,19 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
|
|||
status = AUX_SERIAL_USART->SR;
|
||||
}
|
||||
}
|
||||
#if defined(AUX2_SERIAL)
|
||||
if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) {
|
||||
// Receive
|
||||
uint32_t status = AUX2_SERIAL_USART->SR;
|
||||
while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) {
|
||||
uint8_t data = AUX2_SERIAL_USART->DR;
|
||||
if (!(status & USART_FLAG_ERRORS)) {
|
||||
luaRxFifo->push(data);
|
||||
}
|
||||
status = AUX2_SERIAL_USART->SR;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@ -288,26 +305,31 @@ void aux2SerialInit(unsigned int mode, unsigned int protocol)
|
|||
#if defined(CROSSFIRE)
|
||||
if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||
aux2SerialSetup(CROSSFIRE_TELEM_MIRROR_BAUDRATE, false);
|
||||
AUX2_SERIAL_POWER_OFF();
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
aux2SerialSetup(FRSKY_TELEM_MIRROR_BAUDRATE, false);
|
||||
AUX2_SERIAL_POWER_OFF();
|
||||
break;
|
||||
|
||||
#if defined(DEBUG) || defined(CLI)
|
||||
case UART_MODE_DEBUG:
|
||||
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
||||
AUX2_SERIAL_POWER_OFF();
|
||||
break;
|
||||
#endif
|
||||
|
||||
case UART_MODE_TELEMETRY:
|
||||
if (protocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
aux2SerialSetup(FRSKY_D_BAUDRATE, true);
|
||||
AUX2_SERIAL_POWER_OFF();
|
||||
}
|
||||
break;
|
||||
|
||||
case UART_MODE_LUA:
|
||||
aux2SerialSetup(DEBUG_BAUDRATE, false);
|
||||
AUX2_SERIAL_POWER_ON();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,18 @@ void auxSerialPowerOff()
|
|||
GPIO_ResetBits(AUX_SERIAL_PWR_GPIO, AUX_SERIAL_PWR_GPIO_PIN);
|
||||
}
|
||||
#endif
|
||||
#if defined(AUX2_SERIAL_PWR_GPIO)
|
||||
void aux2SerialPowerOn()
|
||||
{
|
||||
GPIO_SetBits(AUX2_SERIAL_PWR_GPIO, AUX2_SERIAL_PWR_GPIO_PIN);
|
||||
}
|
||||
|
||||
void aux2SerialPowerOff()
|
||||
{
|
||||
GPIO_ResetBits(AUX2_SERIAL_PWR_GPIO, AUX2_SERIAL_PWR_GPIO_PIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if HAS_SPORT_UPDATE_CONNECTOR()
|
||||
void sportUpdateInit()
|
||||
|
|
|
@ -628,10 +628,10 @@ void auxSerialPowerOn();
|
|||
void auxSerialPowerOff();
|
||||
#if defined(AUX_SERIAL_PWR_GPIO)
|
||||
#define AUX_SERIAL_POWER_ON() auxSerialPowerOn()
|
||||
#define AUX_SERIAL__POWER_OFF() auxSerialPowerOff()
|
||||
#define AUX_SERIAL_POWER_OFF() auxSerialPowerOff()
|
||||
#else
|
||||
#define AUX_SERIAL_POWER_ON()
|
||||
#define AUX_SERIAL__POWER_OFF()
|
||||
#define AUX_SERIAL_POWER_OFF()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -647,10 +647,10 @@ void aux2SerialPowerOn();
|
|||
void aux2SerialPowerOff();
|
||||
#if defined(AUX2_SERIAL_PWR_GPIO)
|
||||
#define AUX2_SERIAL_POWER_ON() aux2SerialPowerOn()
|
||||
#define AUX2_SERIAL__POWER_OFF() aux2SerialPowerOff()
|
||||
#define AUX2_SERIAL_POWER_OFF() aux2SerialPowerOff()
|
||||
#else
|
||||
#define AUX2_SERIAL_POWER_ON()
|
||||
#define AUX2_SERIAL__POWER_OFF()
|
||||
#define AUX2_SERIAL_POWER_OFF()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -393,7 +393,7 @@
|
|||
|
||||
// Serial Port (DEBUG)
|
||||
#if defined(PCBX12S) || defined(RADIO_TX16S)
|
||||
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define AUX_SERIAL_RCC_APB1Periph RCC_APB1Periph_USART3
|
||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||
#define AUX_SERIAL_GPIO GPIOB
|
||||
|
@ -407,6 +407,8 @@
|
|||
#define AUX_SERIAL_USART_IRQn USART3_IRQn
|
||||
#define AUX_SERIAL_DMA_Stream_RX DMA1_Stream1
|
||||
#define AUX_SERIAL_DMA_Channel_RX DMA_Channel_4
|
||||
#define AUX_SERIAL_PWR_GPIO GPIOA
|
||||
#define AUX_SERIAL_PWR_GPIO_PIN GPIO_Pin_15 // PB.00
|
||||
#if defined(RADIO_TX16S)
|
||||
#define TRAINER_BATTERY_COMPARTMENT // allows serial port TTL trainer
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue