从串行监视器读取字符串变量时,Arduino RGB LED左值问题

问题描述

我正在Arduino Uno中使用RGB Led,但是当我尝试编译此消息时,该字符串会出现'myColor = Serial.readString();': 在函数'void loop()'中: 21:29:错误:需要左值作为赋值左操作数 退出状态1

附带的屏幕转储提供以下代码:

 1  int red=9;
 2  int green=10;
 3  int blue=11;
 4  String msg="What color LED?";
 5  String myColor;
 6
 7  void setup()
 8  {
 9    pinMode(red,OUTPUT);
10    pinMode(green,OUTPUT);
11    pinMode(blue,OUTPUT);
12    Serial.begin(9600);
13  }
14
15  void loop()
16  {
17    Serial.println(msg);
18    while(Serial.available()=0) {
19    }
20    myColor = Serial.readString();
21    if (myColor=="red"){
22      digitalWrite(red,HIGH);

,结果编译器错误是:

In function 'void loop()':
20:29: error: lvalue required as left operand of assignment
 exit status 1

enter image description here

解决方法

您的错误在第18行上。您错误地编写了 while(Serial.available()= 0){(仅一个'='),因此它看起来像是对编译器的赋值(但赋值运算符左侧的对象不是左值)。您的意思是:

p.intro

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...