void USART2_IRQHandler(void)
{
// if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)
// {
// USART_ClearFlag(USART2,USART_FLAG_TC);
// USART_SendData(USART2,USART_ReceiveData(USART2));
// while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
// }
u32 i=0,j=0,a=0,b=0; /* 等待USART1接收数据完毕 */
//const char *s;
u8 Buff_RX[1000];
u8 Buff_TX[80];
if(USART_GetFlagStatus(USART2 , USART_IT_RXNE) == SET)
{
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
Buff_RX[i++]=USART_ReceiveData(USART2);
//USART_SendData(USART2,*Buff_RX);
//while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
if(i>1000)
{
/*for(j=0;j<1000;j++)
{
USART_SendData(USART2,Buff_RX[j]);
}*/
i=0;
for(j=0;j<1000;j++)
{
if(Buff_RX[j]=='M')
if(Buff_RX[j+1]=='C')
{
for(a=0;a<80;a++)
{
Buff_TX[a]=Buff_RX[j++];
if(Buff_TX[a]==0X0D)
{
for(b=0;b<a;b++)
{
USART_SendData(USART2,Buff_TX);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
}
return;
}
}
}
}
}
}
} |