//***************************************** // ASCII码转换为十进制 //***************************************** uint change() {
temp0=re_dat[0]-48; temp1=re_dat[1]-48; temp2=re_dat[2]-48; speed=temp0*100+temp1*10+temp2; if(temp0==1) P10=0; if(temp1==3) P11=0; if(temp2==7) P13=0; if(speed==137) P1=0xff; //WriteDat(8,speed); return(speed); }
re_dat[]里面放的是从串口受到的数字。 if(temp0==1) P10=0; if(temp1==3) P11=0; if(temp2==7) P13=0; 是测试代码,if为真,则灯亮,要是speed=137,则所有的灯灭。 现在我从调试助手里发一个数:137. 现象是三个if的等都是亮的,但是if(speed==137)对应的状态不对,speed里面的数不是137。这是为什么啊?? 是不是我的算法有问题啊,应该怎么算啊?? |