本帖最后由 challenger 于 2017-5-13 15:21 编辑
if(p2) 接收到TCP数据
{
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);
Receiver=(p2+1);
Show_Str(30,130,180,190,Receiver,12,0); //显示单片机接收到服务器的数据
if(*Receiver==0x30)
{
Show_Str(30,150,180,190,"收到数据:0",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x31)
{
Show_Str(30,150,180,190,"收到数据:1",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x32)
{
Show_Str(30,150,180,190,"收到数据:2",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x33)
{
Show_Str(30,150,180,190,"收到数据:3",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x61)
{
Show_Str(30,150,180,190,"收到数据:a",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x62)
{
Show_Str(30,150,180,190,"收到数据:b",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x41)
{
Show_Str(30,150,180,190,"收到数据:A",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x6162)
{
Show_Str(30,150,180,190,"收到数据:ab",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x3131)
{
Show_Str(30,150,180,190,"收到数据:11",12,0); //显示网络助手发给单片机的数据
}
else if(*Receiver==0x80E1)
{
Show_Str(30,150,180,190,"收到数据:胡",12,0); //显示网络助手发给单片机的数据
}
else
{
Show_Str(30,150,180,190,"解析收到服务器数据不对",12,0); //显示网络助手发给单片机的数据
}
}
利用sim800c GPRS模块,以上是服务器发GPRS数据,stm32F4解析GPRS数据的问题,从网络助手(即服务器)发单个0-9,A-F字符,stm32单片机可以正常解析并显示,但若发字符串如:11, ab及汉字:胡 ,解析都不对,我从网络助手发:11,解析还是:1,正常情况下,发1,应该用ascii 0x31解析,那么发11 解析的ascii是多少呢?不是0x3131吗?还有发ab,解析也不对,以上红字代码解析都不对,总之两个以上字符都不对,还有发汉字也不对,请问字符串及,汉字是以什么码解析的?求教论坛大神们!!!因为单片机接收服务器发过来的协议都是一串字符,一般都不是单个字符,诚心求教!!!请指教! 如我服务器发送: FA 01 02 03 04 05 06 FF ,这一串协议字符,单片机接收怎么处理呢?是以什么码解析呢?
|