¿Qué procesador STM32 está utilizando? El comportamiento que describe es típico de muchos procesadores, donde es necesario conectar explícitamente los controladores de periféricos a los pines de salida, pero donde están conectados implícitamente a las entradas (ya que tales conexiones generalmente son inofensivas). Por otro lado, cuando estaba usando un STM32L151, tuve problemas para que funcionara el UART hasta que seleccioné la "función alternativa" del pin como el UART. ¿Sigues configurando el AFR para ese pin para seleccionar UART? No me sorprendería si el modo de pin se puede seleccionar libremente como "entrada / flotación" o "función alternativa", ya que el UART no manejaría ese pin de todos modos, pero aún así era necesario configurar el AFR de ese pin al UART, para que el UART sepa de qué pin debe aceptar la entrada.
Una topología que me gusta, pero que no he visto en ningún otro lugar por alguna razón (a pesar de que parece ser el enfoque "correcto") se encuentra en algunas partes del microchip, donde la salida de cada pin tiene un mux que selecciona el periférico que debería alimentarlo, pero la entrada de cada periférico tiene un mux que selecciona un pin para alimentarlo. Esto permite que un periférico accione múltiples pines de salida, y permite que múltiples periféricos sean accionados por un pin de entrada. Reconozco que en gran parte una disposición de barra cruzada completa puede ser poco práctica, pero no obstante, seleccionar entradas periféricas de esa manera parece tener varias ventajas, como poder alimentar un pin tanto a un UART como a un disparador de eventos del temporizador ( obteniendo así una marca de tiempo precisa de cuando llega un personaje, incluso si la CPU no puede repararlo al instante).