如何解决Setup() 运行不止一次在 VS Code 中使用 PlatformIO
嘿,我正在做一个小项目,我以某种方式设法导致该设置运行不止一次,而且新代码不会上传到董事会。我不完全确定我做错了什么,但我找不到答案所以我问你们。
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 并不总是自动识别开发板。因此,请确保您使用工具 > 端口 选择了正确的 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?
希望对你有帮助。谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。