STM32F030R8T6 串口2 初始化代码示例
STM32F030R8T6 串口2 初始化代码示例
以下是 STM32F030R8T6 串口2 初始化代码的示例:
#include "stm32f0xx.h"
void USART2_Init(void) {
// 使能 USART2 和 GPIOA 的时钟
RCC->APB1ENR |= RCC_APB1ENR_USART2EN;
RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
// 配置 PA2(PB10) 为 TX 引脚和 PA3(PB11) 为 RX 引脚
GPIOA->MODER &= ~(GPIO_MODER_MODER2 | GPIO_MODER_MODER3);
GPIOA->MODER |= GPIO_MODER_MODER2_1 | GPIO_MODER_MODER3_1;
GPIOA->AFR[0] &= ~(GPIO_AFRL_AFRL2 | GPIO_AFRL_AFRL3);
GPIOA->AFR[0] |= 1 << (2 * 4) | 1 << (3 * 4);
// 配置波特率为 115200
USART2->BRR = SystemCoreClock / 115200;
// 配置 USART2 为 8 位数据位,1 位停止位,无校验位
USART2->CR1 &= ~(USART_CR1_M | USART_CR1_PCE);
USART2->CR2 &= ~USART_CR2_STOP;
USART2->CR1 |= USART_CR1_TE | USART_CR1_RE | USART_CR1_UE;
}
int main(void) {
USART2_Init();
while (1) {
// 串口发送数据
USART2->TDR = 'A';
while (!(USART2->ISR & USART_ISR_TXE));
}
}
在该示例中,我们首先使能 USART2 和 GPIOA 的时钟,并配置 PA2(PB10) 为 TX 引脚和 PA3(PB11) 为 RX 引脚。然后,我们配置波特率为 115200,数据位为 8 位,停止位为 1 位,无校验位。最后,在主函数中,我们通过串口向外发送一个字符 'A'。
原文地址: https://www.cveoy.top/t/topic/n4NF 著作权归作者所有。请勿转载和采集!