在箭头处打个断点无论服务器有木有给GPRS模块发送数据只要程序运行都会进入到这个断点这儿 中断函数不是要服务器给GPRS发送数据的时候才会进入这个接收中断吗?
[mw_shl_code=c,true] if(USART2_RX_STA&0X8000) //接收到一次数据了
{
USART2_RX_BUF[USART2_RX_STA&0X7FFF]=0; //添加结束符
printf("%s",USART2_RX_BUF); //发送到串口
if(hbeaterrcnt) //需要检测心跳应答
{
if(strstr((const char*)USART2_RX_BUF,"SEND OK"))hbeaterrcnt=0;//心跳正常
}
p2=(u8*)strstr((const char*)USART2_RX_BUF,"+IPD");
if(p2)//接收到TCP/UDP数据
{
p3=(u8*)strstr((const char*)p2,",");
p2=(u8*)strstr((const char*)p2,":");
p2[0]=0;//加入结束符
sprintf((char*)p1,"收到%s字节,内容如下",p3+1);//接收到的字节数
LCD_Fill(30+54,115,239,130,WHITE);
POINT_COLOR=BRED;
Show_Str(30+54,115,156,12,p1,12,0); //显示接收到的数据长度
POINT_COLOR=BLUE;
LCD_Fill(30,130,210,319,WHITE);
Show_Str(30,130,180,190,p2+1,12,0); //显示接收到的数据
}
USART2_RX_STA=0;[/mw_shl_code]
这个是将接收到的数据进行相关处理的那一块
[mw_shl_code=c,true]USART2_RX_BUF[USART2_RX_STA&0X7FFF]=0; //添加结束符[/mw_shl_code]
[mw_shl_code=c,true]
[mw_shl_code=c,true]p2=(u8*)strstr((const char*)USART2_RX_BUF,"+IPD");[/mw_shl_code]
[mw_shl_code=c,true]
[mw_shl_code=c,true]p2=(u8*)strstr((const char*)p2,":");[/mw_shl_code]
这几句代码这样写也不懂为什么要查找RX_BUF里面的+IPD这个字符串和':'这个字符串。
[/mw_shl_code]
[/mw_shl_code] |