大家帮忙看看串口代码啊~拜大神啊
void Blue_Str(){
while (Serial.available() > 0) //读取串口输入:有输入则读取信息
{
int inChar = Serial.read(); //读取信息:读取为单字符,后继需将其连起来成为字符串
if (inChar == '#')
{
xxx = inString.toInt();
Serial.println(xxx);
inString = "";
break;
}
else
{
if (inChar == '*') break;
else
{
inString = "";
inString += (char)inChar; //并且将其连起来:如 1+2+3=123
}
}
}
if (inString == "w")//如果输入信息为 w,则高速前行
{
Motor.forward(xxx);
inString = "";//将串口信息缓存清空
blue_start = 1;//同时将蓝牙标志设置为 1
}
if (inString == "q")
{
Motor.forward(xxx);
inString = "";
blue_start = 1;
}
if (inString == "t")
{
Motor.Stop();
inString = "";
blue_start = 0; //运行stop指令,则将蓝牙标志初始化,方便后继选择运行模式 //
}
if (inString == "a")
{
Motor.turnLeftOrigin(xxx);
inString = "";
blue_start = 1;
}
if (inString == "d")
{
Motor.turnRightOrigin(xxx);
inString = "";
blue_start = 1;
}
if (inString == "b")
{
Motor.back(xxx);
inString = "";
blue_start = 1;
}
if (inString == "h")
{
dht11();
blue_start = 1;
}
if (inString == "c")
{
CJ();
Serial.print("Distance");
Serial.println(CJ_data_a);
blue_start = 1;
}
}
大神帮忙改改,我既要能小车的速度设定,又要能用字符控制小车。这样字符控制正常,可是速度输入不正常啊,只能写入最后一个数字,大神们帮帮小弟吧,谢谢 没有判断接收的是否为数字吧,加个 if (isDigit(inChar)) 邵林寺 发表于 2013-12-11 16:08 static/image/common/back.gif
没有判断接收的是否为数字吧,加个 if (isDigit(inChar))
你这个方法,我加了,加上以后,速度输入是可以了,但是字符又输入不进去了~~~真是纠结 本帖最后由 邵林寺 于 2013-12-11 16:35 编辑
额的神呀,那你就不会再加一个判断字符的else{ }吗??????
页:
[1]