Создадим функцию для передачи байта:
/*USARTx send byte */
void usart_sendb(USART_TypeDef * USART, char byte) {
while ((USART->SR & USART_SR_TXE) == 0);
USART->DR = byte;
}
Эта фунция принимает 2 параметра - указатель на порт В/В и отсылаемый байт. Это позволяет использовать ее для любого порта УСАПП в stm32f407. Перед отправкой осуществляется проверка на то что в настоящее время передатчик не осуществляет каких-либо операций. Для отправки мы просто помещаем свое значение в регистр USART->DR.