当前位置:首页 > 单片机 > 单片机
[导读]// 只初始化了RX功能,因为之前没有用到Tx功能,所以没有配置void PM25_UART2_Init(void) // 串口UART2初始化{RCC->APB1ENR |= RCC_APB1ENR_USART2EN; // 串口时钟使能RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打开串

// 只初始化了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)// 读取状态标志位判断是收到数据还是发送的数据

{

// 处理接收到的数据

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭