avrdude: ser_open(): can't open device "\\.\COM3": Не удается найти указанный файл.

Тема в разделе "Arduino & Shields", создана пользователем APS, 27 окт 2016.

  1. APS

    APS Нуб

    Доброго времени суток всем ) Написал код но дает ошибку avrdude: ser_open(): can't open device "\\.\COM3": Не удается найти указанный файл.
    Что делать ?
     
  2. alp69

    alp69 Форумчанин

    На каком порту устройство? СОМ3?
     
  3. APS

    APS Нуб

    нет в COM4 ... и здесь у меня только COM4 , 5 ,6 ... Как можно это исправить ?
     
  4. alp69

    alp69 Форумчанин

    В IDE переключиться.
     
  5. alxndrlsn

    alxndrlsn Нерд

    в помощь: http://www.fabrian.web.id/2016/01/uploading-sketch-problem-arduino.html
    у себя под Windows7 x64 просто удалил драйвер устройства через \пуск\устройства и принтеры\название устройства\оборудование\свойства\драйвер\удалить , затем вынул-вставил usb кабель и все нашлось на новом порте, после чего все прошилось замечательно. (в Arduino IDE 1.7.11 по крайней мере получилось)
     
  6. APS

    APS Нуб

    у меня в IDE ...
     
  7. APS

    APS Нуб

    попробую спасибо alxdrlsn
     
  8. mendal

    mendal Нуб

    Я переустановил ОС на Windows 7 64 на ноутбук и у меня была похожая проблема. В Диспетчере Устройств в Контроллерах USB присутствовало Unknown Device. Но в разделе Порты (COM и LPT) было устройство Arduino Uno (COM4). В программе Arduino IDE можно было указать порт Arduino Uno (COM4), но при загрузке скетча выпадала ошибка:

    avrdude: ser_open(): can't open device "\\.\COM4": Отказано в доступе.

    Переустановка драйверов и Arduino IDE как указано в статье:

    http://www.fabrian.web.id/2016/01/uploading-sketch-problem-arduino.html

    не меняло результата: При загрузке скетча выпадала ошибка. Работоспостобность платы и кабеля была проверена на другом компьютере.

    Возникло полное ощущение, что порт COM4 занят другим устройством. Я нашел статью:
    http://winitpro.ru/index.php/2016/02/02/reset-com-ports/

    Первая часть статьи оказалась бесполезной. А вторая часть про Реестр Windows помогла решить проблему.

    1. Заглянув в ветку реестра HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM я обнаружил, что у меня зарегистрировано 2 устройства на порт COM4 (одно из них было Arduino Uno).

    2. Я принял решение удалить оба эти устройства, а также все остальные на COM портах. В соответствии с инструкцией в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports
    я удалил все COM порты кроме COM3 (В моем случае это были COM порты 1, 2 и 4). При этом порты других типов LPT и др. я оставил.(не удалял)
    COM3 я отставил только потому что в статье было описано какое число надо поставить на следующем шаге при удалении всех портов кроме COM3. Также там описывается возможность удалить все COM порты
    1. Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)[​IMG]
      Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.
    2. Если нужно полностью сбросить все привязки COM, измените значение ключа ComDB на 0.[​IMG]
    3. Очень боялся, но все же рискнул и поставил 04 и остальные 00 (как описано в статье ориентируясь на скриншот) в ветке реестра
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
    Важно не добавить или уменьшить количество байтов (символов)
    При удалении всех COM портов необходимо поставить все 00
    4. Далее отключил все устройства от компьютера
    5. Перезагрузка (скрестив пальцы), так как в статье описан ужас про синий экран смерти, если накосячить с количеством байт на этапе 3 :)

    6. Подключил Arduino Uno.

    7. Посмотрел в ветке реестра
    HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
    и увидел только одно устройство Arduino Uno на COM4. То есть удаление COM портов прошло успешно и Windows заново присвоила следующий свободный порт COM4 новому для нее устройству.

    В итоге даже не пришлось переставлять драйвера и программу Arduino IDE. Скетч загрузился.
    Буду рад если кому-то поможет мой опыт.
     
    Airbus нравится это.
  9. Airbus

    Airbus Радиохулиган Модератор

    Да порты почистить не мешает.Я тоже так делал!
     
  10. Mitrandir

    Mitrandir Гуру

    Интересно, у меня две ардуины 2560 . Одна оригинал, другая Китай. Оригинал определяется как com3 , а Китай как com4.

    Можно как-то побороть?
     
  11. Airbus

    Airbus Радиохулиган Модератор

    Если разные переходники USB-USART то нельзя Винда каждому даёт свой порт если одинаковые-то можно переназначить.А для чего?У меня 3 вида Ардуин.На СН340 туда же идут все Наны и Esp (СОМ3).На FT-232 отдельный порт для одной ардуины(СОМ7) и ешё одна сама по себе на Меге 8 кажется она так и определяется как Ардуино(СОМ5).А что значит "оригинал"?
     
  12. Mitrandir

    Mitrandir Гуру

    Синяя, думал винда назначает ближайший свободный порт
     

    Вложения:

  13. Airbus

    Airbus Радиохулиган Модератор

    Понял синяя Китайская фабричная чёрная от дядюшки Лю.Винда назначает порт в Автомате.Если Вы совали в порт Айфон Гугельфон ардуину или Программатор или Флешку то Винда резервирует Порт за этим устройством а следующим даёт следующий порт.Номер можно переназначить принудительно либо удалить парочку ключей в реестре нах.И сразу поставить то что Вам надо.Там вон mendal уже всё написал.
     
    Mitrandir нравится это.
  14. parovoZZ

    parovoZZ Гуру

    Не проще ли в том же диспетчере устройств просто сменить ком-порт? К чему изврат?
     
  15. Airbus

    Airbus Радиохулиган Модератор

    Э...Просто так не получиться.Ему присвоит порт 26 например.А Он хочет 3 или 5.хотя все проги поддерживают любой Порт.
     
  16. parovoZZ

    parovoZZ Гуру

    Там так-то сам назначаешь.
     
  17. b707

    b707 Гуру

    А зачем? У меня для оригинал Ардуино Уно назначается COM5, для двух китайских Нано (из одной и той же партии) - для одной COM8. для другой COM10. для STM32 - COM12. И это при условии. что я их в одну и ту же USB-дырку втыкаю. Если втыкать в разные - то набор вариантов еще больше. Если каждый раз переживать, какой там порт - жизни не хватит :)
     
  18. Mitrandir

    Mitrandir Гуру

    Иногда когда прошиваю, забываю порт сменить
     
    Последнее редактирование: 16 июл 2018
  19. b707

    b707 Гуру

    у вас разве Ардуино ИДЕ сама порт не выбирает? - у меня автоматически выбирается свежеподключенный девайс, вручную редко-редко когда приходится менять, только если глюки какие
     
  20. Mitrandir

    Mitrandir Гуру

    Неа, берет последний использовавшийся