这是我在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/