我使用的代码如下:
const int NUMBER_OF_FIELDS = 3;
int fieldIndex = 0;
int values[NUMBER_OF_FIELDS];
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
char ch = Serial.read();
if(ch>='0' && ch <= '9')
{
values[fieldIndex] = (values[fieldIndex]*10 +(ch-'0'));
}
else if (ch == ',')
{
if(fieldIndex < NUMBER_OF_FIELDS -1)
fieldIndex++;
}
else
{
Serial.print(fieldIndex+1);
Serial.println("fields recieved:");
for (int i = 0; i<=fieldIndex; i++);
{
//Serial.println(values[i]);
//values[i]= 0;
}
fieldIndex = 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到的错误是:
对于'范围','i'的名称查找已更改为新的ISO'
我不认为我在for循环中做错了什么,为什么我得到这个错误?
在for之后你有一个分号,因此只有for循环范围的int i在for循环之外是无效的.
您可能打算执行以下操作.
for (int i = 0; i<=fieldIndex; i++) // no semicolon
{
Serial.println(values[i]);
values[i]= 0;
}
Run Code Online (Sandbox Code Playgroud)