求助:字符串比较-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 573|回复: 3

[未解决] 求助:字符串比较

[复制链接]
发表于 2022-1-28 10:22 | 显示全部楼层 |阅读模式
请教各位大神,我刚开始学习Arduino, 尝试做从串口输入字符串,然后通过比较字符串控制13脚LED亮灭,程序运行后,从串口监视器看到输入后串口打印没问题,但是LED不能点亮,请问是哪里有问题?非常感谢!
具体代码如下:

#include<string.h>

String s1,s2;
String s3 = "";

void setup() {               
  Serial.begin(9600);   
  pinMode(13, OUTPUT);     
}

void loop() {
   //串口读取字符串:
   while(Serial.available())
   {
    s3+=char(Serial.read());
    delay(2);
   }
  //打印读到的字符串:
   if(s3.length()>0)
   {
    Serial.println(s3);
   }
  //判断读到的字符串是"on“点亮13脚LED,读到的字符串是“off"关闭13脚LED:
   if (s3 == "on"){
    digitalWrite (13,HIGH);
   }
    else if (s3 == "off"){
    digitalWrite (13,LOW);
   }
   String s3 = "";
}


发表于 2022-1-28 15:13 | 显示全部楼层
串口发送选择没有结束符
发表于 2022-1-28 16:10 来自手机 | 显示全部楼层
https://www.arduino.cn/forum.php?mod=viewthread&tid=104455&extra=page%3D2&mobile=2
 楼主| 发表于 2022-2-3 11:23 | 显示全部楼层
奇怪了,今天用比较字符串控制13脚LED亮灭又没问题了,不知道是啥原因,代码基本没变:

#include<string.h>

String string1 = "";

void setup() {               
  Serial.begin(9600);   
  pinMode(13, OUTPUT);     
}

void loop() {
   while(Serial.available())
{
    string1+=char(Serial.read());
    delay(2);
}
   if(string1.length()>0)
   {
    Serial.println(string1);
   }
   if (string1 == "on"){
    digitalWrite (13,HIGH);
   }
    else if (string1 == "off"){
    digitalWrite (13,LOW);
   }
   string1 = "";
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 15:54 , Processed in 0.077232 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表