这是我在Arduino板上进行C编程的第一年。由于某种原因,我的串行监视器不接受任何用户输入,我在做什么错?我需要将两个用户输入作为浮点变量,然后在我设置的自定义函数中使用。

float contSurfArea(float x, float y){
  float z;
  z = (3.14159*x*x)+(2*3.14159*x*y);
  return (z);
}




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


}

void loop(){
  float baseRad, contHeight;

  Serial.println("Open-top Cylindrical Container Program");
  delay(2000);

  Serial.println("Radius of the base(in meters): ");
  while(Serial.available()<=0)
  baseRad= Serial.parseFloat( );
  delay(2000);

  Serial.println("Height of the container(in meters): ");
  while(Serial.available()<=0)
  contHeight= Serial.parseFloat( );
  delay(2000);

  float q;
  q = contSurfArea(baseRad, contHeight);

  Serial.print("The surface area of your container is: ");
  Serial.print(q);
  Serial.print( "meters^2");

}

最佳答案

这应该为您工作:

float contSurfArea(float x, float y){
  float z;
  z = (3.14159*x*x)+(2*3.14159*x*y);
  return (z);
}




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


}

void loop(){
  float baseRad, contHeight = -1;
  char junk = ' ';

  Serial.println("Open-top Cylindrical Container Program");
  delay(2000);

  Serial.println("Radius of the base(in meters): ");
  while (Serial.available() == 0); //Wait here until input buffer has a character
  baseRad = Serial.parseFloat();
  Serial.print("baseRad = "); Serial.println(baseRad, DEC);
  while (Serial.available() > 0) { //parseFloat() can leave non-numeric characters
    junk = Serial.read(); //clear the keyboard buffer
  }

  Serial.println("Height of the container(in meters): ");
  while (Serial.available() == 0); //Wait here until input buffer has a character
  contHeight = Serial.parseFloat();
  Serial.print("contHeight = "); Serial.println(contHeight, DEC);
  while (Serial.available() > 0) {
    junk = Serial.read(); //clear the keyboard buffer
  }

  float q;
  q = contSurfArea(baseRad, contHeight);

  Serial.print("The surface area of your container is: ");
  Serial.print(q);
  Serial.print( "meters^2");

}

关于c - 串行监视器在arduino C编程中不接受用户输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26455495/

10-11 18:48