Skip to content

Commit e02bc35

Browse files
committed
[UART] Add some enhancements
Avoid duplicated common settings Use GPIO_SPEED_FREQ_VERY_HIGH if exists Init OneBitSampling fields if exists Signed-off-by: Frederic Pillon <[email protected]>
1 parent 50ccd99 commit e02bc35

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

cores/arduino/stm32/uart.c

+9-8
Original file line numberDiff line numberDiff line change
@@ -270,27 +270,26 @@ void uart_init(serial_t *obj)
270270
function = pinmap_function(obj->pin_rx, PinMap_UART_RX);
271271
GPIO_InitStruct.Pin = STM_GPIO_PIN(obj->pin_rx);
272272
GPIO_InitStruct.Mode = STM_PIN_MODE(function);
273-
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
274273
GPIO_InitStruct.Pull = STM_PIN_PUPD(function);
274+
/* Common */
275275
#ifdef STM32F1xx
276276
pin_SetF1AFPin(STM_PIN_AFNUM(function));
277277
#else
278278
GPIO_InitStruct.Alternate = STM_PIN_AFNUM(function);
279279
#endif /* STM32F1xx */
280+
#ifdef GPIO_SPEED_FREQ_VERY_HIGH
281+
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
282+
#else
283+
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
284+
#endif
280285
HAL_GPIO_Init(port, &GPIO_InitStruct);
281286

282287
//TX
283288
port = set_GPIO_Port_Clock(STM_PORT(obj->pin_tx));
284289
function = pinmap_function(obj->pin_tx, PinMap_UART_TX);
285290
GPIO_InitStruct.Pin = STM_GPIO_PIN(obj->pin_tx);
286291
GPIO_InitStruct.Mode = STM_PIN_MODE(function);
287-
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
288292
GPIO_InitStruct.Pull = STM_PIN_PUPD(function);
289-
#ifdef STM32F1xx
290-
pin_SetF1AFPin(STM_PIN_AFNUM(function));
291-
#else
292-
GPIO_InitStruct.Alternate = STM_PIN_AFNUM(function);
293-
#endif /* STM32F1xx */
294293
HAL_GPIO_Init(port, &GPIO_InitStruct);
295294

296295

@@ -308,7 +307,9 @@ void uart_init(serial_t *obj)
308307
&& !defined(STM32L1xx)
309308
huart->AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
310309
#endif
311-
// huart->Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
310+
#ifdef UART_ONE_BIT_SAMPLE_DISABLE
311+
huart->Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
312+
#endif
312313

313314
#if defined(LPUART1_BASE)
314315
/* Note that LPUART clock source must be in the range [3 x baud rate, 4096 x baud rate], check Ref Manual */

0 commit comments

Comments
 (0)