usart.c

Создадим функцию для передачи байта:

/*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.