如何从setup in()中读取一个char数组并等待足够长的时间让用户点击发送?

时间:2017-10-31 20:29:52

标签: bluetooth arduino

我正在使用Arduino Mega,它将通过蓝牙终端应用程序为Arduino进行蓝牙控制。我想要它做的是,当它启动时,在设置 - 我希望它提示用户输入4位数的PIN,一旦用户完成输入引脚并点击发送程序应继续进行而不是在此之前。这就是我试过的

unsigned char buff[4];

void getPassword() {

  int j = 0;

  Serial1.println("Enter the PIN: ");

  for (;;) {
    while (Serial1.available() > 0) {
      buff[j] = Serial1.read();
      j++;
    }

    if (j >= 3) {

      break;
    }
  }
}

void setup() {

getPassword();
}

它似乎根本不起作用。我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我注意到你的密码缓冲区是4个字符长。但是你只能从Serial中读取3个字符。密码实际上是3或4个字符长吗?如果它是4个字符长,那么当j是3时,它还没有时间退出该循环。当j为3时,您正在等待第四个字符。您想在读取第四个字符后退出,j再次递增并变为4.