u8 Clear=Clear;
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //????????
{
RX_BUF[RX_HEAD_PTR]= USART_ReceiveData(USART1);//SBUF0;
RX_HEAD_PTR=(RX_HEAD_PTR+1)&0x3f;
//USART_ClearITPendingBit(USART1, USART_IT_RXNE); //ÇåÖD¶Ï±êÖ¾Î
//USART_ClearFlag(USART1,USART_FLAG_TC); //?????
// if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
// {
// USART_ClearFlag(USART1,USART_FLAG_ORE); //?SR????????
// USART_ReceiveData(USART1); //?DR
// }
//while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET){}//μè′y½óêü½áêø
}
else if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)
{
Clear=USART1->SR;//¶áSR¼Ä′æÆ÷
Clear=USART1->DR;//¶áDR¼Ä′æÆ÷
Recflag=1;
}
/*·¢Ëíêy¾YÖD¶Ï*/
if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
{
if (TX_HEAD_PTR!=TX_TAIL_PTR)
{
USART_SendData(USART1, TX_BUF[TX_TAIL_PTR]);
TX_TAIL_PTR=(TX_TAIL_PTR+1)&0xff;
}else
{
USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //·¢Ëííê3éÖ®oóÇå·¢ËíÖD¶Ï
TX_HEAD_PTR=TX_TAIL_PTR=0;
RS485 =0;
}
}
就是进不了空闲中断
|