diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-01-21 06:52:33 -0800 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-01-21 06:52:33 -0800 |
commit | ec06a8f50621be5954abfd3553f1fb7df6567e84 (patch) | |
tree | 26ed046966578df04e6a2d50957d0ba27de75cf1 | |
parent | bfbccf65227026c961c22612f84555dcd48588ac (diff) | |
parent | b4a58caddb56ea3b6a6f750eed0c0c77a008e9c4 (diff) | |
download | px4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.tar.gz px4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.tar.bz2 px4-nuttx-ec06a8f50621be5954abfd3553f1fb7df6567e84.zip |
Merge pull request #9 from PX4/STM32F1_singlewire_uart
STM32F10xxx single wire usart support
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_serial.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_serial.c b/nuttx/arch/arm/src/stm32/stm32_serial.c index 0cf1f209b..e2a0da226 100644 --- a/nuttx/arch/arm/src/stm32/stm32_serial.c +++ b/nuttx/arch/arm/src/stm32/stm32_serial.c @@ -1743,6 +1743,18 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) */ uint32_t cr = up_serialin(priv, STM32_USART_CR3_OFFSET); +#if defined(CONFIG_STM32_STM32F10XX) + if (arg == SER_SINGLEWIRE_ENABLED) + { + stm32_configgpio((priv->tx_gpio & ~(GPIO_CNF_MASK)) | GPIO_CNF_AFOD); + cr |= USART_CR3_HDSEL; + } + else + { + stm32_configgpio((priv->tx_gpio & ~(GPIO_CNF_MASK)) | GPIO_CNF_AFPP); + cr &= ~USART_CR3_HDSEL; + } +#else if (arg == SER_SINGLEWIRE_ENABLED) { @@ -1754,6 +1766,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) stm32_configgpio(priv->tx_gpio | GPIO_PUSHPULL); cr &= ~USART_CR3_HDSEL; } +#endif up_serialout(priv, STM32_USART_CR3_OFFSET, cr); } |