我的Arduino串行命令行不起作用,我不知道为什么
My Serial Command line for Arduino doesn't work and I don't know why
请帮忙,我是盲人
void commandline() {
if (Serial.available() > 0)
{
String command = Serial.readStringUntil(' ');
String commandvar = Serial.readString();
Serial.print(command);
Serial.print(" | ");
Serial.println(commandvar);
if ( command == "fans" || command == "Fans" || command == "FANS" )
{
Serial.println("Command Recognized");
if ( commandvar == "on" || commandvar == "On" || commandvar == "ON" )
{
Serial.println(" Fans are now ON");
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
else if ( commandvar == "off" || commandvar == "Off" || commandvar == "OFF" )
{
Serial.println(" Fans are now OFF");
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
else
{
Serial.println("commandvar isn't valid");
}
}
当我看着串行控制台并发送"粉丝"时,控制台吐了出来
fans | on
Command Recognized
commandvar isn't valid
任何帮助将不胜感激
====
========================额外信息
1(我每10毫秒从loop((调用命令行((
2(fans命令不是我唯一的命令,只是我必须将它们转换为使用我创建的新命令变量
3( 我正在使用 Arduino Uno Rev 3
输出是一个提示:有一个空行。对我说commandvar = "onn"
,因此!= "on"
您可以通过检查字符串的长度来确认这是问题所在 - 如果它是> 2,则其中有一些您意想不到的特殊字符。如果字符只是空格,那么您可能只需要commandvar.trim()
即可获得重要部分(即没有空格(
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 我不知道为什么这段代码会让核心被转储?
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- if-else 语句仅按特定顺序工作,我不知道为什么
- DirectX 11 引擎在第三次代码改进后没有突然运行,我不知道为什么
- 函数抛出seg错误,我不知道为什么
- 我不知道为什么复制构造函数的调用在 c++ 中不稳定
- 随着时间的推移,我的程序越来越慢,我不知道为什么.内存泄漏
- "错误:在'.标记'之前出现预期的主表达式,我不知道为什么
- 我正在制作c ++代码,但发生错误我不知道为什么
- std::cout << glGetString(GL_RENDER) << std::endl;抛出错误但不GL_Renderer或GL_Verision,我不知道为什么?
- 我的Arduino串行命令行不起作用,我不知道为什么
- 我正在编写一个拆分为 3 的合并排序,我不知道为什么它不起作用
- 我不知道为什么我的矢量无法推回
- 语法检查器指出一些我不知道为什么的错误
- 我不知道为什么我的字符串无法保存值
- 编写蒙特卡洛集成程序,我不知道为什么我会收到某些错误
- 我不知道为什么会发生堆损坏(关于内存分配问题)
- 库特是空的,我不知道为什么
- C++:我需要在这里包含这个标题,我不知道为什么