Se complicó un poco con una función definida en dos archivos y uno con un símbolo __débil. Llamé a la siguiente función para cargar la configuración de UART1 en STM32L476RG desde mi archivo principal
if(HAL_UART_Init(&UartHandle) != HAL_OK) and this function is defined at
{
Error_Handler();
}
Descubrí que esta función llama a otra función llamada HAL_UART_MspInit(huart);
Esto se define en dos lugares,
1. in stm32l4xx_hal_msp.c as void HAL_UART_MspInit(UART_HandleTypeDef
*huart)
2. in stm32l4xx_hal_uart.c as __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart)
Mi problema es que cada vez que cargo la configuración de UART, se llama a la función __weak. Lo hice refiriendo un ejemplo, UART_WakeUpFromStop dado en la [página del producto STM32F476RG] . donde en el ejemplo se llama a la función en nstm32l4xx_hal_msp.c , void HAL_UART_MspInit(UART_HandleTypeDef *huart). ¿Qué está fallando en mi código? ¿Cuál es la influencia del símbolo __débil?
Entonces, la definición y la implementación se pueden anular con un tipo no débil, también conocido como uno definido por el usuario.
Consulta el manual del traje de abeja..
brahans