|
外围模块输出数据格式如:$sat,215,23*
用单片机接收一个字符搞的定,接收字符串问题就来了,要么乱码要么只是显示最后一个。如何将引导词后的2个字符数据分离出来并转换为数据格式!代码如下:
void Com_Int(void) interrupt 4
{
RI=0;
if(SBUF==0x24) //判断是不是$
{
record=1; //记录开始
iaz=0; //记录字符个数变量
douhao=0; //逗号个数
}
if(record==1)
{
if(SBUF==0x2c){douhao++;}
if(douhao==1)
{
stringaz[iaz]=SBUF;//中间段字符数据
iaz++;
}
//省略处理最后段字符数据
if(SBUF==0x2a) //是不是*号
{
stringaz[iaz]='0';
len=sprintf(stringaz,"%s",stringaz+1);
if(len!=0)
{
numaz=atoi(stringaz);
}
numaz=0;
douhao=0;
record=0;
iaz=0;
}
}
}
帮忙看下这样写对不对?哪个老大帮我改下代码?小弟分比较少,不好意思!
|
|