Arduino上传最后一次之后显示“avrdude:ser_open():无法打开设备”“\\.\COM3”。

3
我将使用Arduino UNO来制作声音检测器。 我上传了一个程序,但代码中出现错误,导致返回异常大的数字。我认为我使用了错误的模块代码,但是连接方式正确,只要使用正确的代码就能正常工作。
我上传的代码如下:
const int ledPin =13;
const int middleValue = 512;
const int numberOfSamples =128;

int sample;
long signal;
long averageReading;

long runningAverage = 0;
const int averagedOver = 16;

const int threshold=400;

void setup(){
    pinMode(ledPin, OUTPUT)
    Serial.begin(9600)
}

void loop(){
    long sumOfSquares = 0;
    for (int i=0; i<numberOfSamples; i++){
        sample = analogRead(0);
        signal = (sample - middleValue);
        signal *= signal;
        sumOfSquares += signal;
    }
    averageReading = sumOfSquares/numberOfSamples;
    runningAverage=(((averagedOver -1 )*runningAverage)+averageReading)/averagedOver;

    if(runningAverage>threshold){
        digitalWrite(ledPin, HIGH);
    }else{
        digitalWrite(ledPin, LOW);
    }
    Serial.println(runningAverage);
}

当Arduino突然停止发送串行号码时,我按下了重置按钮并上传了默认代码:
void setup() {
}

void loop() {
}

但现在它显示无法连接到COM3 (arduino),并且找不到设备,但我可以看到使用设备管理器(windows 8.1)成功连接了arduino uno到电脑。当我将其连接到电源或USB时,Arduino的LED灯也会亮起来。
当我点击查看串行输出时,它显示“端口未找到”。
我刚刚烧毁了Arduino吗?我该如何修复?
此外,我检查了当我插入USB时,13号引脚闪烁三次。我只是无法上传任何东西。

也许你会在这里找到更多帮助:http://arduino.stackexchange.com/ - Ôrel
https://dev59.com/qV8e5IYBdhLWcg3wd6M6#26913070 - akki
5个回答

6

我的解决方法:

工具 > 端口 > (你的COM端口)

只需选择这个选项即可解决错误。


如果我在终端中有/dev/tty.SLAB_USBtoUART,而在IDE中有/dev/cu.SLAB_USBtoUART,那该怎么办? - Nickolay Kondratenko
如果端口选项变灰了怎么办? - Mike Bourbeau

3
你需要进行一些检查,才能得出结论,你的Arduino可能没问题。据我所知,代码不能破坏控制器。
以下是需要检查的几点:
  1. 检查是否有其他软件正在使用同一串口。两个软件不能同时使用同一串口。
  2. 重新启动电脑,然后再尝试。
  3. 将微控制器从板子上拆下来,连接到电脑上并尝试打开串口。如果它打开了,那么将Tx引脚连接到Rx引脚,发送一些数据并检查是否收到了数据。这样可以确保你的USB-TTL转换器没有问题。
  4. 如果前面的步骤成功了,那么将你的微控制器插入到另一个板子中,并检查是否可以编程。
我相信在进行这些检查之后,你会找到板子/微控制器失效的原因。

0

是的,检查一切...特别是USB电缆或USB端口。这很关键。我的问题只是电脑USB端口上有灰尘。灰尘、尘土和污垢。很疯狂吧?只需清理USB端口和连接器,问题就解决了。


0

0

我也遇到了同样的问题并解决了它。 尝试这个方法: 1. 断开所有连接到你的Arduino的电缆 2. 连接外部电源 3. 连接USB电缆 4. 然后上传。

我使用我的Arduino与CNC shield(GRBL)并将外部电源插入Arduino。 之后,仅使用USB电缆无法上传新的固件到Arduino。 一旦你成功使用USB + 外部电源上传,那么你就可以仅使用USB电缆上传任何固件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接