Last active
April 6, 2020 13:34
-
-
Save futurelink/0230bf0f93fc66368348da01f1ca1f82 to your computer and use it in GitHub Desktop.
Конфигурация USART1 для STM32F051C8 на стандартных пинах PA9 и PA10 в синхронном режиме без HAL, SPL и прочего
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Конфигурация USART1 для STM32F051C8 на стандартных пинах | |
| * PA9 и PA10 в синхронном режиме без HAL, SPL и прочего.. | |
| */ | |
| void USART1_Config() { | |
| RCC->APB2ENR |= RCC_APB2ENR_USART1EN; | |
| /* TX это выход с альтер-функцией (GPIOB 6 pin) */ | |
| GPIOA->MODER &= ~GPIO_MODER_MODER9; // Сброс значения для PA9 | |
| GPIOA->MODER |= GPIO_MODER_MODER9_1; // Установка режима AF | |
| GPIOA->OTYPER &= ~GPIO_OTYPER_OT_9; // Push-Pull | |
| GPIOA->OSPEEDR |= GPIO_OSPEEDR_OSPEEDR9; // Максимальная скорость | |
| GPIOA->PUPDR |= (GPIO_PUPDR_PUPDR9_0); // Pull-up | |
| GPIOA->AFR[1] |= 0x00000010; // PA9 устанавливаем AF1 | |
| /* RX это вход (GPIOA 10 pin) */ | |
| GPIOA->MODER &= ~GPIO_MODER_MODER10; // Сброс значения для PA10 | |
| GPIOA->MODER |= GPIO_MODER_MODER10_1; // Установка режима AF | |
| GPIOA->OTYPER &= ~GPIO_OTYPER_OT_10; // Не Push-pull | |
| GPIOA->OSPEEDR |= GPIO_OSPEEDR_OSPEEDR10; // Максимальная скорость | |
| GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR10; // Без pull-up или pull-down | |
| GPIOA->AFR[1] |= 0x00000100; // PA10 устанавливаем AF1 | |
| USART1->BRR = 625; // 115200 на 72МГц формула (72000000+4800)/115200 | |
| USART1->CR1 |= | |
| USART_CR1_UE | // USART1 включаем | |
| USART_CR1_TE | // Включаем передачу | |
| USART_CR1_RE; // Включаем прием | |
| USART1->CR1 |= USART_CR1_RXNEIE; // Включаем прерывание по не пустому буферу приема | |
| NVIC_EnableIRQ (USART1_IRQn); // Разрешаем прерывание по USART1 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment