C 函数之间的全局变量
Global Variables in C Between Functions
我想弄清楚如何让这个打印函数在变量所在的函数之外工作。
int altitude = 0;
void setup() {
Serial.begin(9600);
simulateAltitude();
}
void loop() {
Serial.println(altitude); // This does not work.
}
int simulateAltitude() {
int a = 0;
while ( a == 0 ) {
altitude += 1;
Serial.println(altitude); // This does work.
delay(1);
}
}
我最大的问题是 void loop() 没有从 int simulateAltitude 函数的 while 循环中获取高度值。这是在使用 C 的 Arduino UNO 微控制器板上使用的。
我知道这是一个无限循环,仅供测试。
这里有 2 个问题:
首先需要初始化a
和altitude
。给他们初始值(比如,0
)。
其次,您没有设置串行监视器。将此行添加到您的设置函数中:
Serial.begin(9600); //9600 is more common but you can set other update frequencies
它不会从 loop()
中打印海拔高度,因为 loop()
从未真正被调用过。
记住关于 Arduino 的这个。 setup()
函数在启动时被调用一次,一旦它 returns,loop()
函数就会被一遍又一遍地调用。
按照你的方式,你的 setup()
函数调用 simulateAltitude()
进入无限循环,所以它 never returns .它不会同时 运行 simulateAltitude()
和 loop()
。
你最好看看类似的东西:
void loop() {
Serial.println(altitude);
increaseAltitude();
}
int increaseAltitude() {
altitude += 1;
delay(1);
}
这段代码有两个问题。首先是 simulateAltitude
永远不会被调用,所以 altitude
永远不会更新。第二个问题是 a
和 altitude
都没有真正初始化。
我想弄清楚如何让这个打印函数在变量所在的函数之外工作。
int altitude = 0;
void setup() {
Serial.begin(9600);
simulateAltitude();
}
void loop() {
Serial.println(altitude); // This does not work.
}
int simulateAltitude() {
int a = 0;
while ( a == 0 ) {
altitude += 1;
Serial.println(altitude); // This does work.
delay(1);
}
}
我最大的问题是 void loop() 没有从 int simulateAltitude 函数的 while 循环中获取高度值。这是在使用 C 的 Arduino UNO 微控制器板上使用的。
我知道这是一个无限循环,仅供测试。
这里有 2 个问题:
首先需要初始化a
和altitude
。给他们初始值(比如,0
)。
其次,您没有设置串行监视器。将此行添加到您的设置函数中:
Serial.begin(9600); //9600 is more common but you can set other update frequencies
它不会从 loop()
中打印海拔高度,因为 loop()
从未真正被调用过。
记住关于 Arduino 的这个。 setup()
函数在启动时被调用一次,一旦它 returns,loop()
函数就会被一遍又一遍地调用。
按照你的方式,你的 setup()
函数调用 simulateAltitude()
进入无限循环,所以它 never returns .它不会同时 运行 simulateAltitude()
和 loop()
。
你最好看看类似的东西:
void loop() {
Serial.println(altitude);
increaseAltitude();
}
int increaseAltitude() {
altitude += 1;
delay(1);
}
这段代码有两个问题。首先是 simulateAltitude
永远不会被调用,所以 altitude
永远不会更新。第二个问题是 a
和 altitude
都没有真正初始化。