很简单:
配置好两个串口,然后开发送、接收中断。
写串口中断服务程序。下面我是用寄存器库的方式写的:
void USART2_IRQHandler(void) //串口2 中断服务
{
u8 res;
if(USART2->SR & (1<<5)) //接收到数据
{
USART3->DR = USART2->DR; //向串口3发送
}else if(USART2->SR & 0x40){ //发送一字节完成
USART2->SR &= ~0x40;//清发送完成标志
}
}
void USART3_IRQHandler(void) //串口3 中断服务
{
u8 res;
if(USART3->SR & (1<<5)) //接收到数据
{
USART2->DR = USART3->DR; //向串口3发送
}else if(USART3->SR & 0x40){ //发送一字节完成
USART3->SR &= ~0x40;//清发送完成标志
}
}