I'm trying to use auto baud feature on STM32F051 with STM32F0xx_StdPeriphLib drivers (V1.5.0) to adjust my baud rate to sync-bytes that I receive from another MCU over UART1.
The relevant code looks like that:
/* UART1 already configured and running */
The procedure itself works fine, however I encounter delays of ~17 milliseconds until the baud rate adjustment is completed (until UART_FLAG_ABRF becomes set). This delay stays the same no matter how many sync-bytes are sent from the other device during this period.
I tried to use Cuba_Hal Lib for comparison with the following code (taken from an ST example):
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_AUTOBAUDRATE_INIT;
huart1.AdvancedInit.AutoBaudRateEnable = UART_ADVFEATURE_AUTOBAUDRATE_ENABLE;
huart1.AdvancedInit.AutoBaudRateMode = UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT;
if (HAL_UART_Init(&huart1) != HAL_OK)
/* Initialization Error */
With this code the auto baud procedure is completed in under 1ms.
Does anybody know why this delay occurs with StdPeriphLib and how I can fix it?
Many thanks in advance!