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


void UART_init(void)
{
// тактируюсь от кварца на 12 МГц
// включаю тактирование ЮАРТ1 и порта на которам он висит
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
RCC->APB2ENR|= RCC_APB2ENR_AFIOEN;
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
// настраиваю соответсв. порты на вход и выход от расшир. функций
GPIOA->CRH &= ~GPIO_CRH_MODE9;
GPIOA->CRH &= ~GPIO_CRH_CNF9;
GPIOA->CRH &= ~GPIO_CRH_MODE10;
GPIOA->CRH &= ~GPIO_CRH_CNF10;
GPIOA->CRH |= GPIO_CRH_MODE9_1; // выход на 2 МГц
GPIOA->CRH |= GPIO_CRH_CNF9_1;
GPIOA->CRH |= GPIO_CRH_CNF10_0;
// 12 МГц/16*115200 = 6.5
USART1->BRR = (6 << 4) + 8;
// включаю ЮАРТ
USART1->CR1 |= USART_CR1_UE;
USART1->CR1 |= USART_CR1_TE; // включил передатчик
USART1->CR1 |= USART_CR1_RE; // включил приемник
}Serial.begin(9600);GPIOA->CRH &= ~GPIO_CRH_MODE9;
GPIOA->CRH &= ~GPIO_CRH_CNF9;
ProtoSnap — интересный «конструктор» для начинающего электронщика