本文主要是记录 在中断函数内部怎么进行配置 (基于寄存器编写)
void USART1_IRQHandler(void) //串口1中断服务
{
if(USART1->SR & (1<<5)) //接收到数据
{
USART2->DR = USART1->DR; //向串口2发送
}else if(USART1->SR & 0x40){ //发送一字节完成
USART1->SR &= ~0x40;//清发送完成标志
}
}
void USART2_IRQHandler(void) //串口2中断服务
{
if(USART2->SR & (1<<5)) //接收到数据
{
USART1->DR = USART2->DR; //向串口1发送
}else if(USART2->SR & 0x40){ //发送一字节完成
USART2->SR &= ~0x40;//清发送完成标志
}
}
经过本人测试 完全没有任何问题