You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino串口输入字符串匹配校验:匹配成功才继续,否则重复请求输入

实现方案

现有代码问题分析

  • 缺少状态标记区分「密码校验阶段」和「主逻辑运行阶段」,校验通过后无法跳转到正常业务逻辑
  • 密码匹配失败后没有主动输出重新输入的提示,用户不知道需要再次输入
  • 无逻辑控制校验流程,无论是否匹配成功都会持续监听串口输入

修改后完整代码

String defaultPassword = "pass1234";
// 新增全局标记位:标记密码是否校验通过
bool isPasswordVerified = false;

void setup() {
  Serial.begin(9600);
  Serial.println("Enter password: ");
}

void loop() {
  // 密码未校验通过时,仅跑校验逻辑
  if (!isPasswordVerified) {
    while (Serial.available() > 0) {
      String inputPassword = Serial.readStringUntil('\n');
      inputPassword.trim();

      if (inputPassword == defaultPassword) 
      {
        Serial.print("Correct Input: ");
        Serial.println(inputPassword);
        Serial.println("Initializing...");
        // 校验通过,修改标记位
        isPasswordVerified = true;
        // 此处可添加校验通过后的初始化代码
      } 
      else
      {
        Serial.print("Incorrect Input: ");
        Serial.println(inputPassword);
        // 校验失败,提示重新输入
        Serial.println("Enter password again: ");
      }
    }
    // 校验未通过时直接返回,不执行后续主逻辑
    return;
  }

  // --------------------------
  // 此处编写校验通过后的主业务逻辑,会循环执行
  // --------------------------

}

关键逻辑说明

  • 全局变量isPasswordVerified默认值为false,此时程序只会执行密码校验相关代码,不会进入主逻辑
  • 密码匹配失败时会主动输出重新输入的提示,引导用户再次输入
  • 密码匹配成功后将isPasswordVerified设为true,后续loop循环就会跳过校验分支,直接执行主业务逻辑

内容的提问来源于stack exchange,提问作者Igor V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:36:06