Цитата(Ешь @ Nov 6 2015, 23:09)

Поправил, но ничего не поменялось. Так же сейчас задумался, похоже там не должно быть отрицания. В документации сказано, что 1 там ставится когда данные передались, т.е. эта строка так должна выглядить:
Код
while(USART1->ISR & USART_ISR_TXE); //Ждем установки флага TXE - конца передачи данных на сдвиговый регистр
После этой правки, он благополучно завис на этом месте. Видимо все-таки дело в том, что ещё нужно что-то инициализировать...
Нет, этот флаг взводится, когда регистр передатчика пуст, и в него можно записывать. Поэтому отрицание убирать не надо.
Может, у вас просто скорость не совпадает? Вы осциллографом не смотрели на ножке TX?
И ещё один момент. Попробуйте сначала включить тактирование USART, и уже потом включать альтернативную функцию ножки. По крайней мере, у меня сделано так, и всё работает.
Цитата(Tarbal @ Nov 6 2015, 23:57)

Если модуль не разрешен, то работать не будет.
Да разрешён у него модуль, вот же строка, которая включает USART1 (даже с комментарием!):
Код
RCC->APB2ENR |= RCC_APB2ENR_USART1EN; //Включаем тактирование модуля USART1
Если бы я знал, что такое электричество...