【发布时间】:2014-08-02 06:02:41
【问题描述】:
这几天我一直在编写一些 arduino 代码,但我遇到了这个问题。我需要检查 inData 是否等于最大 150 的数字,但是当我输入两位数和三位数时它停止工作。这是我正在使用的代码。它从键盘输入数字,该键盘设置为将其数字发送到 arduino 的串行 RX 引脚。
放在这里太长所以我把它放在pastebin here。
char inData[20]; // Allocate some space for the string
if (inData[0] == '10') {
// Code snipped for brevity
}
【问题讨论】:
-
很多人(包括我在内)不会去“场外”查看您的代码。
indata是什么类型的? -
'10'是不是一个字符。 -
while (Serial.available()) { delay(10);字符 c = Serial.read(); if (c == ',') {break;} readString += c; if (readString == "#") {look();读字符串="";休息; } inData[索引] = c;索引++; inData[index] = '\0';
-
@timrau:不,但它很短。这是比较 2 个字符的最快和最简单的方法:*(WORD*)inData == '01'。我假设英特尔架构,所以你必须通过反转短的数字来补偿字节序。
标签: c++ if-statement char arduino