Недавно начал ковырять STM32, поэтому вопрос скорее всего глупый.
Мне надо использовать выводы UART сначала, как обычные GPIO (вход и выход), а потом в середине кода как UART.
Как правильно сделать? Сначала провести инициализацию выводов как GPIO, а потом внутри кода повторно инициализировать как UART? Или если инициализирован UART, то можно как-то просто обратиться к выводам напрямую, как к обычным GPIO?
инициализация это расстановка правильных байтиков по правильным адресам :)
ты можешь делать когда угодно и сколько угодно.
а уже значения отдельных битов управляют соответствующими параметрами аппаратных модулей.
на каждом выводе порта имеется коммутатор, который "подключает" вывод к соответствующим выводам других модулей контроллера.
вывод, "отключенный" от уарта, никак от его работы зависеть не будет. он будет выполнять ту работу которая описана в байтиках управления GPIO
Просто инициализировать UART. Внутри МК выходы GPIO и UART к физическому выводу подключаются специальным "переключателем" состояние которых определяется битами служебных регистров. Установил бит у тебя UART, снял - GPIO (или наоборот)