gpt4 book ai didi

c - Arduino 代码不处理串行输出

转载 作者:行者123 更新时间:2023-11-30 14:35:51 27 4
gpt4 key购买 nike

我正在使用 Arduino Uno 来学习嵌入式系统类(class)。我的任务是必须编写一个实现这些规范的函数。接受用户的输入(“R”、“G”、“B”)并显示红色、绿色或蓝色。函数名称必须是 dispColor(),输入必须是 char a 并且没有返回值。我的代码如下,但是每当我输入输入时,我都不会收到输出。我的代码哪里出错了?

String dispColor(char){

char a = Serial.read();

if (a == "R")
Serial.print("Red");
else if (a == "G")
Serial.print("Green");
else if (a == "B")
Serial.print("Blue");

}

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
String dispColor();
}

void loop() {
// put your main code here, to run repeatedly:

}

我更新的代码

void dispColor(char a){
if(Serial.available()){
a = Serial.read();
if(a == 'R')
Serial.print("Red");
else if(a == 'G')
Serial.print("Green");
else if(a == 'B')
Serial.print("Blue");
}
}

void setup() {
Serial.begin(9600);
Serial.println("Please type in R, G, or B.");
dispColor();
}

void loop() {

}

最佳答案

正如setup中的注释所说(“//把你的设置代码放在这里,运行一次:”,该代码只会执行一次,所以当你准备好“键入输入”,将不会运行任何代码来读取它。

因此,您肯定需要做的一件事是将 dispColor 移动到 loop

还有一些错误:

  • 您正在将字符与字符串进行比较
  • 您应该将参数传递给 dispColor,而不是从其中读取
  • 如果有可用的输入,您可能应该只调用 dispColor

看看https://www.arduino.cc/reference/en/language/functions/communication/serial/read/开始吧!

关于c - Arduino 代码不处理串行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com