u8 RxCounter = 0; //接收当前位
u8 RxOver = 0; //字符串接收完成
u8 RxLength = 0; //字符串实际长度
u8 RxBuffer[20]; //接收缓存
u8 RxBuffed[20]; //接收完成字符串
void USART2_IRQHandler(void)
{
u8 i;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART2,USART_IT_RXNE);
RxBuffer[RxCounter++] = USART_ReceiveData(USART2); //每次接收一个字符
RxOver = 0;
if(RxBuffer[RxCounter-1]==0x0a) //接受完一个字符串
{
RxOver = 1; //接收完成
RxLength = RxCounter-2;
RxCounter = 0;
}
if(RxOver == 1) //接受完一个字符
{
for(i=0;i<RxLength;i++)
{
RxBuffed[i] = RxBuffer[i];
}
for(i=RxLength;i<20;i++)
{
RxBuffed[i] = ' ';
}
}
}
}