@@ -97,6 +97,7 @@ void uart_init(serial_t *obj)
9797 UART_HandleTypeDef * huart = & (obj -> handle );
9898 GPIO_InitTypeDef GPIO_InitStruct ;
9999 GPIO_TypeDef * port ;
100+ uint32_t function = (uint32_t )NC ;
100101
101102 // Determine the UART to use (UART_1, UART_2, ...)
102103 USART_TypeDef * uart_tx = pinmap_peripheral (obj -> pin_tx , PinMap_UART_TX );
@@ -238,27 +239,29 @@ void uart_init(serial_t *obj)
238239 //Configure GPIOs
239240 //RX
240241 port = set_GPIO_Port_Clock (STM_PORT (obj -> pin_rx ));
242+ function = pinmap_function (obj -> pin_rx , PinMap_UART_RX );
241243 GPIO_InitStruct .Pin = STM_GPIO_PIN (obj -> pin_rx );
242- GPIO_InitStruct .Mode = STM_PIN_MODE (pinmap_function ( obj -> pin_rx , PinMap_UART_RX ) );
244+ GPIO_InitStruct .Mode = STM_PIN_MODE (function );
243245 GPIO_InitStruct .Speed = GPIO_SPEED_FREQ_HIGH ;
244- GPIO_InitStruct .Pull = STM_PIN_PUPD (pinmap_function ( obj -> pin_rx , PinMap_UART_RX ) );
246+ GPIO_InitStruct .Pull = STM_PIN_PUPD (function );
245247#ifdef STM32F1xx
246- pin_SetF1AFPin (STM_PIN_AFNUM (pinmap_function ( obj -> pin_rx , PinMap_UART_RX ) ));
248+ pin_SetF1AFPin (STM_PIN_AFNUM (function ));
247249#else
248- GPIO_InitStruct .Alternate = STM_PIN_AFNUM (pinmap_function ( obj -> pin_rx , PinMap_UART_RX ) );
250+ GPIO_InitStruct .Alternate = STM_PIN_AFNUM (function );
249251#endif /* STM32F1xx */
250252 HAL_GPIO_Init (port , & GPIO_InitStruct );
251253
252254 //TX
253255 port = set_GPIO_Port_Clock (STM_PORT (obj -> pin_tx ));
256+ function = pinmap_function (obj -> pin_tx , PinMap_UART_TX );
254257 GPIO_InitStruct .Pin = STM_GPIO_PIN (obj -> pin_tx );
255- GPIO_InitStruct .Mode = STM_PIN_MODE (pinmap_function ( obj -> pin_tx , PinMap_UART_TX ) );
258+ GPIO_InitStruct .Mode = STM_PIN_MODE (function );
256259 GPIO_InitStruct .Speed = GPIO_SPEED_FREQ_HIGH ;
257- GPIO_InitStruct .Pull = STM_PIN_PUPD (pinmap_function ( obj -> pin_tx , PinMap_UART_TX ) );
260+ GPIO_InitStruct .Pull = STM_PIN_PUPD (function );
258261#ifdef STM32F1xx
259- pin_SetF1AFPin (STM_PIN_AFNUM (pinmap_function ( obj -> pin_tx , PinMap_UART_TX ) ));
262+ pin_SetF1AFPin (STM_PIN_AFNUM (function ));
260263#else
261- GPIO_InitStruct .Alternate = STM_PIN_AFNUM (pinmap_function ( obj -> pin_tx , PinMap_UART_TX ) );
264+ GPIO_InitStruct .Alternate = STM_PIN_AFNUM (function );
262265#endif /* STM32F1xx */
263266 HAL_GPIO_Init (port , & GPIO_InitStruct );
264267
0 commit comments