有没有人能告诉我为什么第一个while不运行,卡在第二个while出不来了
void loop()
{
// keysacn();//调用按键扫描函数
while(1)
{
//有信号为LOW 没有信号为HIGH 检测到黑线 输出高 检测到白色区域输出低
SR = digitalRead(SensorRight);//有信号表明在白色区域,车子底板上L1亮;没信号表明压在黑线上,车子底板上L1灭
SL = digitalRead(SensorLeft);//有信号表明在白色区域,车子底板上L2亮;没信号表明压在黑线上,车子底板上L2灭
if (SL == LOW&&SR==LOW)
run(); //调用前进函数
else if (SL == HIGH & SR == LOW)// 左循迹红外传感器,检测到信号,车子向右偏离轨道,向左转
left();
else if (SR == HIGH & SL == LOW) // 右循迹红外传感器,检测到信号,车子向左偏离轨道,向右转
right();
else // 都是黑色, 停止
{
brake(50);
break;
}
}
while(1)
{
//有信号为LOW 没有信号为HIGH 有障碍物输出0 没有障碍物输出1
SR_2 = digitalRead(SensorRight_2);
if (SR_2==HIGH)//前面没有障碍物
{
run(); //调用前进函数
digitalWrite(beep,LOW); //蜂鸣器不响
digitalWrite(LED,LOW); //LED不亮
}
else if ( SR_2 == LOW)// 前面探测到有障碍物,有信号返回
{
digitalWrite(beep,HIGH); //蜂鸣器响
digitalWrite(LED,HIGH); //LED亮
brake(3);//停止300MS
back(20);//后退2000MS
// left(5);//调用左转函数 延时500ms
digitalWrite(beep,LOW); //蜂鸣器不响
digitalWrite(LED,LOW);
break;
}
}
}
先说说你为啥认为第一个没运行,而且还卡在了第二个吧。