@@ -97,6 +97,7 @@ void uart_init(serial_t *obj)
97
97
UART_HandleTypeDef * huart = & (obj -> handle );
98
98
GPIO_InitTypeDef GPIO_InitStruct ;
99
99
GPIO_TypeDef * port ;
100
+ uint32_t function = (uint32_t )NC ;
100
101
101
102
// Determine the UART to use (UART_1, UART_2, ...)
102
103
USART_TypeDef * uart_tx = pinmap_peripheral (obj -> pin_tx , PinMap_UART_TX );
@@ -238,27 +239,29 @@ void uart_init(serial_t *obj)
238
239
//Configure GPIOs
239
240
//RX
240
241
port = set_GPIO_Port_Clock (STM_PORT (obj -> pin_rx ));
242
+ function = pinmap_function (obj -> pin_rx , PinMap_UART_RX );
241
243
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 );
243
245
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 );
245
247
#ifdef STM32F1xx
246
- pin_SetF1AFPin (STM_PIN_AFNUM (pinmap_function ( obj -> pin_rx , PinMap_UART_RX )) );
248
+ pin_SetF1AFPin (STM_PIN_AFNUM (function );
247
249
#else
248
- GPIO_InitStruct .Alternate = STM_PIN_AFNUM (pinmap_function ( obj -> pin_rx , PinMap_UART_RX ) );
250
+ GPIO_InitStruct .Alternate = STM_PIN_AFNUM (function );
249
251
#endif /* STM32F1xx */
250
252
HAL_GPIO_Init (port , & GPIO_InitStruct );
251
253
252
254
//TX
253
255
port = set_GPIO_Port_Clock (STM_PORT (obj -> pin_tx ));
256
+ function = pinmap_function (obj -> pin_tx , PinMap_UART_TX );
254
257
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 );
256
259
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 );
258
261
#ifdef STM32F1xx
259
- pin_SetF1AFPin (STM_PIN_AFNUM (pinmap_function ( obj -> pin_tx , PinMap_UART_TX )) );
262
+ pin_SetF1AFPin (STM_PIN_AFNUM (function );
260
263
#else
261
- GPIO_InitStruct .Alternate = STM_PIN_AFNUM (pinmap_function ( obj -> pin_tx , PinMap_UART_TX ) );
264
+ GPIO_InitStruct .Alternate = STM_PIN_AFNUM (function );
262
265
#endif /* STM32F1xx */
263
266
HAL_GPIO_Init (port , & GPIO_InitStruct );
264
267
0 commit comments