STM32F0(9)串口初始化
扫描二维码
随时随地手机看文章
// 只初始化了RX功能,因为之前没有用到Tx功能,所以没有配置
void PM25_UART2_Init(void) // 串口UART2初始化
{
RCC->APB1ENR |= RCC_APB1ENR_USART2EN; // 串口时钟使能
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打开串口所对应的GPIO引脚时钟
GPIOA->AFR[0] |= 0x00001000; // 开启复用功能的对应AFIO(对应截图)
GPIOA->MODER |= GPIO_MODER_MODER3_1; // 开启GPIO复用模式
GPIOA->MODER &= ~GPIO_MODER_MODER3_0;
USART2->BRR = 0x3a98; //波特率,时钟频率,波特率设置
USART2->CR1 |= USART_CR1_RXNEIE | USART_CR1_UE | USART_CR1_RE; // 打开串口,8位数据格式,1个停止位,无校验位
NVIC->ISER[0] |= (1 << USART2_IRQn); // 串口中断开关
NVIC->IP[USART2_IRQn / 4] |= (0x00000000 << (8 * (USART2_IRQn % 4))); // 串口中断优先级
}
void USART2_IRQHandler(void) // 中断服务程序
{
if(USART2->ISR & USART_ISR_RXNE)// 读取状态标志位判断是收到数据还是发送的数据
{
// 处理接收到的数据
}
}