C 使用Serial.print的Arduino无限循环
这个程序应该在串行监视器中检测用户输入,然后输出相同的内容,但在句子末尾有一个句点 但出于某种原因,我下面的代码甚至在我开始输入之前就打印出了无限的点:C 使用Serial.print的Arduino无限循环,c,loops,printing,arduino,arduino-uno,C,Loops,Printing,Arduino,Arduino Uno,这个程序应该在串行监视器中检测用户输入,然后输出相同的内容,但在句子末尾有一个句点 但出于某种原因,我下面的代码甚至在我开始输入之前就打印出了无限的点: char incoming; void setup() { Serial.begin(9600); // Select baud } void loop() { if (Serial.available() > 0){ // Check if serial is empty incoming = Ser
char incoming;
void setup() {
Serial.begin(9600); // Select baud
}
void loop() {
if (Serial.available() > 0){ // Check if serial is empty
incoming = Serial.read();// Set incoming as the input
Serial.print(incoming);// Prints input
}
if (bool con=true){
con=false;
Serial.print(".");
}
}
我如何解决这个问题?非常感谢您的帮助。如果在条件中声明变量不是一个好的做法,那么它将始终为真/假! 为该变量设置更好的范围。 如果要检查用户输入,我将一直读取,直到收到“\r”字符
if (bool con=true)
如果允许使用此表单(不在C中),则该表单将始终为true,并且将其值更改为false不会产生任何效果。如果您希望在给定输入后使用单个点。就这样做吧:
char incoming;
void setup() {
Serial.begin(9600); // Select baud
}
void loop() {
if (Serial.available() > 0){ // Check if serial is empty
incoming = Serial.read();// Set incoming as the input
Serial.print(incoming + ".");// Prints input with dot
}
}
我认为这就是您想要的输出:
输入:一个句子
输出:一个句子。
如果(bool con=true)
始终为true。你需要弄清楚如何检测“句子的结尾”。通过阅读输入,您如何知道“句子”正在结束?回车键是否定义了句子的结束?不清楚您试图实现什么。除非初始化为false…;)