我的代码有问题,昨天它对我来说很好,但是当我更改一个东西时它不起作用,CTRL-Z 和之前的代码也不再起作用。
String readString = "";
int Rand = 0;
String Random = "";
void setup() {
Serial.begin(9600);
}
void loop()
{
while(!Serial.available());
while (Serial.available() > 0) {
delay(3);
char c = Serial.read();
readString += c;
}
Serial.print(readString);
if(readString == "Hi"){
Rand = random(5100,9999);
String Random = String(((((Rand - 5) * 2) - 36) / 2 - 3) * 2);
Serial.print(Random);
}
readString = "";
}
这是我的代码,对我不起作用的是,每当我在串行端口中输入命令时,它都会由 Serial.print(readString); 显示但如果我输入“Hi”(不带引号),则 if(readString == "Hi") 似乎不起作用。
有人知道如何解决 if 语句识别“我发送的嗨”的问题吗?
我的一个朋友告诉了答案。他说如果你有一个字符串,里面就会有一个换行符,方法是你必须在 if 语句之前修剪变量,执行 readString.trim();。
我已经发送了像你一样的类似错误。你可以试试这个;
if (stringOne.equals(stringTwo)) { //to do
stringOne 是“Hi”,strintTwo 是 readString。
我希望能为您解决这个问题。
“readString”是 Serial 的内置函数名称(继承于 SerialX)。这可能会引起冲突。