Resolved! Does HAL_UART_Transmit/HAL_UART_Receive needs a semaphore?
Say that HAL_UART_Transmit function is concurrently called by two tasks.So far, I know such a function is blocking, but I am not 100% sure that because of that it shall not be locked before usage if a concurrent task is going to call it.