1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

cpu/stm32_common: init RX pin only if RX is active

This commit is contained in:
Hauke Petersen 2017-02-09 10:42:03 +01:00
parent b0def58927
commit c3f54e9d7f

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2014-2016 Freie Universität Berlin * Copyright (C) 2014-2017 Freie Universität Berlin
* Copyright (C) 2016 OTA keys * Copyright (C) 2016 OTA keys
* *
* This file is subject to the terms and conditions of the GNU Lesser * This file is subject to the terms and conditions of the GNU Lesser
@ -8,7 +8,7 @@
*/ */
/** /**
* @ingroup cpu_stm32f2 * @ingroup cpu_stm32_common
* @{ * @{
* *
* @file * @file
@ -56,8 +56,7 @@ int uart_init(uart_t uart, uint32_t baudrate, uart_rx_cb_t rx_cb, void *arg)
isr_ctx[uart].rx_cb = rx_cb; isr_ctx[uart].rx_cb = rx_cb;
isr_ctx[uart].arg = arg; isr_ctx[uart].arg = arg;
/* configure RX and TX pin */ /* configure TX pin */
gpio_init(uart_config[uart].rx_pin, GPIO_IN);
gpio_init(uart_config[uart].tx_pin, GPIO_OUT); gpio_init(uart_config[uart].tx_pin, GPIO_OUT);
/* set TX pin high to avoid garbage during further initialization */ /* set TX pin high to avoid garbage during further initialization */
gpio_set(uart_config[uart].tx_pin); gpio_set(uart_config[uart].tx_pin);
@ -65,8 +64,14 @@ int uart_init(uart_t uart, uint32_t baudrate, uart_rx_cb_t rx_cb, void *arg)
gpio_init_af(uart_config[uart].tx_pin, GPIO_AF_OUT_PP); gpio_init_af(uart_config[uart].tx_pin, GPIO_AF_OUT_PP);
#else #else
gpio_init_af(uart_config[uart].tx_pin, uart_config[uart].tx_af); gpio_init_af(uart_config[uart].tx_pin, uart_config[uart].tx_af);
gpio_init_af(uart_config[uart].rx_pin, uart_config[uart].rx_af);
#endif #endif
/* configure RX pin */
if (rx_cb) {
gpio_init(uart_config[uart].rx_pin, GPIO_IN);
#ifndef CPU_FAM_STM32F1
gpio_init_af(uart_config[uart].rx_pin, uart_config[uart].rx_af);
#endif
}
/* enable the clock */ /* enable the clock */
periph_clk_en(uart_config[uart].bus, uart_config[uart].rcc_mask); periph_clk_en(uart_config[uart].bus, uart_config[uart].rcc_mask);