请问如何确认字符串每一位?
下面的代码可以把字符串记录下来,比如我发送一个A_1111,然后对比是不是A_1111.但是我想做的更加完善一些比如先判断第一位为A 然后后面一串为1111。
请问如何实现这样的功能?就是想读取这串字符的每一位 然后对每一位进行分别对比和记录。
另外想问一下,最近开始接触ARDUINO原来C也没怎么学,想从头开始好好学习一下,请问有什么推荐的教程或者书可以学起来的吗?真心想学好
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
if(comdata.length()> 0){
if (comdata=="A_1111")
{
Serial.println("Right");}
digitalWrite(ledPin1,HIGH);
delay (5000);
特定的格式,尽量是两个特定字符开头,中间为想要的数据,最后是校验,逐字节读出并判断。
"AA11114"两个A作为开头,1111为数据,4为校验。这是针对特定长度的字符串进行的。
还有很多方法,你可以自己上网查找。 164335413 发表于 2016-7-20 13:03 static/image/common/back.gif
特定的格式,尽量是两个特定字符开头,中间为想要的数据,最后是校验,逐字节读出并判断。
"AA11114"两个A ...
我想请问的是~如何实现逐个对比?就是我怎么实现查看没一个字符呢? dreamlang123 发表于 2016-7-20 13:51 static/image/common/back.gif
我想请问的是~如何实现逐个对比?就是我怎么实现查看没一个字符呢?
Serial.read() 每读取一个字节就进行判断,分支结构。if(Serial.available()) //**************接收命令
{
if(Serial.read() == '$') //Start Flag
{
while(!Serial.available())//wait the next command
{}
switch(Serial.read()) //
{
case 'M': //Action executed command表情控制
buf = readOneDigit(); //whether have Action
if(buf != ERR)
{
motionNumber = buf;
mode = 'M';
pos_L =800;
Serial.print("$M");
Serial.print(motionNumber);
}
else
{
Serial.print("$EM"); //action command error
}
break;
case 'S': //眼珠随机表情停止
buf = readOneDigit(); //whether have Action
if(buf != ERR)
{
randFlag = buf;
mode = 'S';
pos_L =100;
Serial.print("$S");
Serial.print(randFlag);
}
else
{
Serial.print("$ES"); //stop command error
}
break;
default:
Serial.print("$E");
break;
}
}
} 164335413 发表于 2016-7-20 14:22 static/image/common/back.gif
Serial.read() 每读取一个字节就进行判断,分支结构。
谢谢大神辛苦~ 表示不太能看的懂。。。我慢慢研究。。
我的最终目的说白了就是发送一串密码类似于AA123123
我需要CHECK 开头为AA然后把123123保存并记录在系统中和下一次其他输入的对比。
没怎么玩过ARDUINO也没太学过C++ 好烦躁,找了一天代码的理论了,看的云里雾里, 现在回按照字符分隔字符串了,但是还是不能回记录分隔符后面的字符。比如A,123123 能判断,在第几位 但是不知道如何把后面123123记录下来:'(
还是谢谢,辛苦。
164335413 发表于 2016-7-20 14:22 static/image/common/back.gif
Serial.read() 每读取一个字节就进行判断,分支结构。
谢谢大神辛苦~ 表示不太能看的懂。。。我慢慢研究。。
我的最终目的说白了就是发送一串密码类似于AA123123
我需要CHECK 开头为AA然后把123123保存并记录在系统中和下一次其他输入的对比。
没怎么玩过ARDUINO也没太学过C++ 好烦躁,找了一天代码的理论了,看的云里雾里, 现在回按照字符分隔字符串了,但是还是不能回记录分隔符后面的字符。比如A,123123 能判断,在第几位 但是不知道如何把后面123123记录下来:'(
还是谢谢,辛苦。 dreamlang123 发表于 2016-7-20 14:35 static/image/common/back.gif
谢谢大神辛苦~ 表示不太能看的懂。。。我慢慢研究。。
我的最终目的说白了就是发送一串密码类似于AA1231 ...
上面发的只是个例子,我发送的是$M1 $M2...这样的字符串,$作为起始,后面的是命令,没加校验。一般有校验的话也只是将前面的字符串进行逻辑运算的操作。
如果知道A是开头,那判断完A之后,就连续读出6个字符,也就是123123,然后再和你需要做判断的地方进行对比。
页:
[1]