Setup() 不止一次运行。在 VS Code 中使用 PlatformIO
Setup() runnunig more than once. Using PlatformIO in VS Code
嘿,我正在做一个小项目,我不知何故设法导致设置 运行 不止一次,而且新代码不会上传到板上。我不完全确定我做错了什么,但我找不到答案所以我问你们。
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
// I want to make some sound to tell the user to start measuring so I'll put some code below
Serial.print("Inicialize setup");
while (millis() < 5000)
{
if (millis() % 1000)
{
Serial.print(millis());
Serial.print("\n");
}
if (AnalogValue > MaxIntensity)
{
MaxIntensity = AnalogValue;
}
if (AnalogValue < MinIntensity)
{
MinIntensity = AnalogValue;
}
}
Serial.print("setup done");
float MaxDist = Distance(MaxIntensity);
float MinDist = Distance(MinIntensity);
float delta = MaxDist - fabs(MinDist);
Segmentlength = delta / 7;
for (int i = 7; i > 0; i--)
{
TonesUpperValues[i] = MinDist + (Segmentlength * i);
}
}
这就是上面用到的函数
float Distance(int Intensity)
//function to calculate distance from intensity
{
float d = (1 / (exp(Intensity + EOffset))) + Offset;
d *= -1;
return d;
}
在串行监视器中,我看到一遍又一遍地打印毫秒,还有一些我猜是 "inicialize setup"
和 "Setup done"
的文本
当我尝试上传代码时出现此错误:avrdude: ser_open(): can't open device "\.\COM5": Access is denied.
即使:Auto-detected: COM5
之前的代码(无法被新上传覆盖且当前为 运行 的代码在功能中有此警告,这不是设置的一部分:src\main.cpp:38:1: warning: control reaches end of non-void function [-Wreturn-type]
你们看到我犯了什么错误吗?
查看代码片段,我不完全确定您的代码发生了什么。但是我发现了一些问题,希望对你有所帮助。
- 对于
avrdude: ser_open(): can't open device "\.\COM5": Access is denied.
个问题,
Arduino 并不总是自动识别开发板。因此,请确保使用 Tools > Port 选择了正确的 com 端口。你必须在那里看到你的 Arduino
如果电路板不存在,请确保您已正确连接 Arduino,即 Arduino 上的 LED 亮起。
如果你已经正确连接板子,但仍然没有显示板子,请确保Arduino USB driver
安装正确。重新安装 Arduino IDE
以安装 USB 驱动程序。
您的代码片段没有 void loop()
。如果您不使用 void loop()
,则将其留空,但千万不要错过。会导致编译错误。
对于warning: control reaches end of non-void function [-Wreturn-type]
错误,请通过What does "control reaches end of non-void function" mean?
希望这对您有所帮助。谢谢
嘿,我正在做一个小项目,我不知何故设法导致设置 运行 不止一次,而且新代码不会上传到板上。我不完全确定我做错了什么,但我找不到答案所以我问你们。
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);
// I want to make some sound to tell the user to start measuring so I'll put some code below
Serial.print("Inicialize setup");
while (millis() < 5000)
{
if (millis() % 1000)
{
Serial.print(millis());
Serial.print("\n");
}
if (AnalogValue > MaxIntensity)
{
MaxIntensity = AnalogValue;
}
if (AnalogValue < MinIntensity)
{
MinIntensity = AnalogValue;
}
}
Serial.print("setup done");
float MaxDist = Distance(MaxIntensity);
float MinDist = Distance(MinIntensity);
float delta = MaxDist - fabs(MinDist);
Segmentlength = delta / 7;
for (int i = 7; i > 0; i--)
{
TonesUpperValues[i] = MinDist + (Segmentlength * i);
}
}
这就是上面用到的函数
float Distance(int Intensity)
//function to calculate distance from intensity
{
float d = (1 / (exp(Intensity + EOffset))) + Offset;
d *= -1;
return d;
}
在串行监视器中,我看到一遍又一遍地打印毫秒,还有一些我猜是 "inicialize setup"
和 "Setup done"
的文本
当我尝试上传代码时出现此错误:avrdude: ser_open(): can't open device "\.\COM5": Access is denied.
即使:Auto-detected: COM5
之前的代码(无法被新上传覆盖且当前为 运行 的代码在功能中有此警告,这不是设置的一部分:src\main.cpp:38:1: warning: control reaches end of non-void function [-Wreturn-type]
你们看到我犯了什么错误吗?
查看代码片段,我不完全确定您的代码发生了什么。但是我发现了一些问题,希望对你有所帮助。
- 对于
avrdude: ser_open(): can't open device "\.\COM5": Access is denied.
个问题,
Arduino 并不总是自动识别开发板。因此,请确保使用 Tools > Port 选择了正确的 com 端口。你必须在那里看到你的 Arduino
如果电路板不存在,请确保您已正确连接 Arduino,即 Arduino 上的 LED 亮起。
如果你已经正确连接板子,但仍然没有显示板子,请确保
Arduino USB driver
安装正确。重新安装Arduino IDE
以安装 USB 驱动程序。
您的代码片段没有
void loop()
。如果您不使用void loop()
,则将其留空,但千万不要错过。会导致编译错误。对于
warning: control reaches end of non-void function [-Wreturn-type]
错误,请通过What does "control reaches end of non-void function" mean?
希望这对您有所帮助。谢谢