void USART3_IRQHandler(void) //串口3中断服务程序
{
int i;
int temp;
if(USART_GetFlagStatus(USART3, USART_FLAG_ORE) != RESET)
{
USART_ClearITPendingBit(USART3,USART_IT_RXNE);
rx_buff[length++]=USART_ReceiveData(USART3);
}
if(USART_GetFlagStatus(USART3,USART_IT_RXNE)!=RESET)
{
rx_buff[length++]=USART_ReceiveData(USART3);
}
if(USART_GetFlagStatus(USART3,USART_FLAG_IDLE)!=RESET)
{
DE1_L;
RE1_L;
temp=USART3->SR;
temp=USART3->DR;
length=temp;
for( i=0;i<length;i++)
{
USART_SendData(USART1,rx_buff[i]);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);//判断接受是否完成
}
length=0;
DE1_H;
RE1_H;
}
}
重新接受为啥还是不行?大佬们有好的方法吗?