Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Первыми граблями был USARTА всё потому, что документацию читать не нужно, а библиотека для работы с периферией — для слабаков.
//Функция передачи символа void Usart1_Send_symbol(uint8_t data) { while(!(USART1->SR & USART_SR_TC)); //Проверяем установку флага TC - завершения предыдущей передачи USART1->DR = data; //Записываем значение в регистр данных - передаем символ }
//Проверяем установку флага TC — завершения предыдущей передачиВы в своём комментарии сами себе сообщаете о причине ошибки. Надо так:
void Usart1_Send_symbol(uint8_t data)
{
USART_SendData(USART1, data);
do {} while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); // ждём, пока не очистится буфер передачи (TX Empty)
}
STM32 и LCD через I2C