【发布时间】:2020-01-01 23:11:22
【问题描述】:
我有一个字符串从 PC 通过串行传输到微控制器 (Arduino),例如:
"HDD: 55 - CPU: 12.6 - Weather: Cloudy [...] $";
通过这个函数我发现:
String inputStringPC = "";
boolean stringCompletePC = false;
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputStringPC += inChar;
if (inChar == '$') // end marker of the string
{
stringCompletePC = true;
}
}
}
我想在HDD、CPU这个词之后提取它的第一个数字并得到字符串 在 Weather 之后(即“多云”);我的想法是这样的:
int HDD = <function that does that>(Keyword HDD);
double CPU = <function that does that>(Keyword CPU);
char Weather[] = <function that does that>(Keyword Weather);
什么是正确的功能?
我研究了 inputStringSerial.indexOf("HDD") 但我仍然是一个学习者,可以正确理解它的作用并且不知道是否有更好的功能。
我的方法产生了一些语法错误,并使我对“String inputStringSerial”(类?)和“char inputStringSerial[]”(变量?)之间的用法差异感到困惑。当我做'string inputStringSerial =“”;' PlatformIO 抱怨“字符串”未定义。 非常感谢您在此处了解其用法的任何帮助。
非常感谢。
【问题讨论】:
-
这不是C。C语言中没有
class。 -
谢谢。也许是 VS Code 的误解?我正在使用 PlatformIO。
-
@nolimits 不是误解。 Arduino 是 C++ 而不是 C。
标签: string arduino serial-port microcontroller arduino-c++