mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Enable/disable the UART TX before changing the TX pin mode (#13017)
This commit is contained in:
parent
9bbe2836a4
commit
a54bc47e1b
1 changed files with 7 additions and 0 deletions
|
@ -251,6 +251,10 @@ bool checkUsartTxOutput(uartPort_t *s)
|
|||
// Enable USART TX output
|
||||
uart->txPinState = TX_PIN_ACTIVE;
|
||||
IOConfigGPIOAF(txIO, IOCFG_AF_PP, uart->tx.af);
|
||||
|
||||
// Enable the UART transmitter
|
||||
SET_BIT(s->Handle.Instance->CR1, USART_CR1_TE);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
// TX line is pulled low so don't enable USART TX
|
||||
|
@ -268,6 +272,9 @@ void uartTxMonitor(uartPort_t *s)
|
|||
if (uart->txPinState == TX_PIN_ACTIVE) {
|
||||
IO_t txIO = IOGetByTag(uart->tx.pin);
|
||||
|
||||
// Disable the UART transmitter
|
||||
CLEAR_BIT(s->Handle.Instance->CR1, USART_CR1_TE);
|
||||
|
||||
// Switch TX to an input with pullup so it's state can be monitored
|
||||
uart->txPinState = TX_PIN_MONITOR;
|
||||
IOConfigGPIO(txIO, IOCFG_IPU);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue