我是想将串口发送的字符先存储起来,就是先不发送。然后对存储的数据进行变换之后再发送。我通过串口调试助手发送的是1#2#3#。 我想通过变换后SCITXBUF发送的数据是123。 但是我在观察窗口看到存数器当中存储的数据不是49 35 50 35 51 35。而是 49 255 49 255 49 255。望各位大神帮我看看。
for(;;)
{
if((SciaTx_Ready() == 1) && (Send_Flag == 1))
{
SciaRegs.SCITXBUF=n;
Send_Flag = 0;
for(j=0;j<10;j++)
{
Sci_VarRx[j]=0;
}
/*i++;
if(i == 100)
{
i = 0;
}*/
}
#if !SCIA_INT
if(SciaRx_Ready() == 1)
{
Sci_VarRx[j] = SciaRegs.SCIRXBUF.all;
Send_Flag=0;
if(Sci_VarRx[j]==35)
{
m_keyflag++; /*接收到的#号字符的数目*/
}
j++;
if(m_keyflag==3)
{
n=ChangeToInt(j); /*转换成整形*/
Send_Flag=1;
}
}
#endif
}
}
ChangeToInt(int num)
{
int i;
int door;
for(i=0;i<num;i++)
{
if((Sci_VarRx[i]==35)&&(i!=num-3)&&(i!=num-1))
{
door=i;
}
m=Sci_VarRx[door-1]*100+Sci_VarRx[door+1]*10+Sci_VarRx[door+3];
return m;
}
} |