【问题标题】:Simple arduino program简单的arduino程序
【发布时间】:2014-03-03 13:07:51
【问题描述】:

我编写了简单的 arduino 程序来检查一个 ascii 字符数组。这是程序

void setup(){
  Serial.begin(9600); // connect serial

}

void loop(){

char inByte;
  char arr[100]={0};
  char arrr[5]={'s','t','a','r','t'};
 int x=0;
 int y=0;
  do{

    arr[x]=arrr[y];
    x++;
    y++;
      }while(arr[0]!='s' && arr[1] !='t' && arr[2]!='a' && arr[3]!='r' && arr[4]!='t');
  if(arr[0]=='s' && arr[1] =='t' && arr[2]=='a' && arr[3]=='r' && arr[4]=='t'){
    delay(1000);
    Serial.println("done");}
    else{
    delay(1000);
    Serial.println("oo");
}

}

我希望它在串行监视器中显示“完成”,但它正在打印“oo”..谁能告诉我程序中有什么问题..谢谢

【问题讨论】:

  • 为其他部分打开大括号
  • 一个好的缩进和花括号的使用会告诉你问题。不使用花括号是一种不好的做法,即使对于单个语句也是如此。

标签: c arrays embedded arduino


【解决方案1】:

为其他部分打开大括号

if(arr[0]=='s' & arr[1] =='t' & arr[2]=='a' & arr[3]=='r' & arr[4]=='t'){
    delay(1000);
    Serial.println("done");
}
else {
    delay(1000);
    Serial.println("oo"); 
}

【讨论】:

  • 此条件失败while(arr[0]!='s' && arr[1] !='t' && arr[2]!='a' && arr[3]!='r' && arr[4]!='t'); 如果要显示完成,请将条件更改为while(arr[0]!='s' || arr[1] !='t' || arr[2]!='a' || arr[3]!='r' || arr[4]!='t');
  • @Sogo 测试$arr的值。
  • 如果你使用 &&,对于第一个循环 arr[0] 有 's' 值,其他为空。所以while循环条件失败并退出循环,对不起我的英语
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 2012-04-12
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多