Arduino readString 无法遵循命令

问题描述 投票:0回答:3

我的代码有问题,昨天它对我来说很好,但是当我更改一个东西时它不起作用,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 语句识别“我发送的嗨”的问题吗?

c# arduino serial-port
3个回答
0
投票

我的一个朋友告诉了答案。他说如果你有一个字符串,里面就会有一个换行符,方法是你必须在 if 语句之前修剪变量,执行 readString.trim();。


0
投票

我已经发送了像你一样的类似错误。你可以试试这个;

if (stringOne.equals(stringTwo)) { //to do

stringOne 是“Hi”,strintTwo 是 readString。

我希望能为您解决这个问题。


0
投票

“readString”是 Serial 的内置函数名称(继承于 SerialX)。这可能会引起冲突。

© www.soinside.com 2019 - 2024. All rights reserved.