char UART2_RX_BUFliu[300];
char UART2_RX_BUF[300];
char GUI_liuxiao[300];
void USART2_IRQHandler(void)
{
u8 Res;
OSIntEnter();
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART2); //(USART1->DR);
if((USART_RX_end2&0x80)==0)
{
if((Res!=0x0d)&&(Res!=0x0a)&&(Res!=0x20))
{
UART2_RX_BUF[USART_RX_STA2&0X3F]= Res;
USART_RX_STA2++;
}
if((Res==0x0d)&&(USART_RX_STA2>1))
{
UART2_RX_BUF[USART_RX_STA2]=',';
UART2_RX_BUF[USART_RX_STA2]='\0';
nRX2_Len_temp=USART_RX_STA2+2;
USART_RX_STA2 =0;
USART_RX_end2 =0x80;
strcpy(UART2_RX_BUFliu,UART2_RX_BUF);
}
if(USART_RX_end2&0x80)
{
USART_RX_end2=0x00;
else if(sim900a_check_cmd2("+CCFG:"))
{strcpy(GUI_liuxiao,UART2_RX_BUFliu); GUIliuxiao=2;}
else
nRX2_Len_temp=0;
}
}
}
OSIntExit();
}
让串口接收数如下:+CCFG:20,0,16,201,0,352,201,0,206,201,0,188,201,0,248,201,0,394,201,0,58,201,0,230,201,0,364,201,0,398,201,0,448,201,0,26,201,0,446,201,0,196,201,0,28,201,0,48,201,0,212,201,0,460,201,0,22,201,0,358,201
数据不能解析
如果缩短字符:+CCED:20,0,16,201,0,352,201,0,206,201,0,188,201,0
数据能解析
我定义的buf已经很大了,不能理解是啥问题。
|