Не удалось открыть файл /dev/ttyACM0 (порт занят)
Я пытаюсь работать с (новой) бритвой sparkfun razor IMU 9dof, я написал silple sktetch для калибровки магнитометра:
#include <SparkFunMPU9250-DMP.h> // Include SparkFun MPU-9250-DMP library
#include <Wire.h> // Depending on your Arduino version, you may need to include Wire.h
MPU9250_DMP imu; // Create an instance of the MPU9250_DMP clas
void setup() {
Serial.begin(115200);
Serial.println(F("Adafruit 10 DOF Board AHRS Calibration Example")); Serial.println("");
if (imu.begin() != INV_SUCCESS){
while (1) {
Serial.println("Failed to initialize MPU-9250, loop forever");
}
}
imu.setGyroFSR(2000); // Set gyro to 2000 dps
imu.setAccelFSR(2); // Set accel to +/-2g
imu.setLPF(5); // Set LPF corner frequency to 5Hz
imu.setSampleRate(100); // Set sample rate to 10Hz
imu.setCompassSampleRate(100); // Set mag rate to 10Hz
}
void loop(void){
imu.update();
// Print the sensor data
Serial.print("Raw:");
Serial.print(imu.ax);
Serial.print(',');
Serial.print(imu.ay);
Serial.print(',');
Serial.print(imu.az);
Serial.print(',');
Serial.print(imu.gx);
Serial.print(',');
Serial.print(imu.gy);
Serial.print(',');
Serial.print(imu.gz);
Serial.print(',');
Serial.print(imu.mx);
Serial.print(',');
Serial.print(imu.my);
Serial.print(',');
Serial.print(imu.mz);
Serial.println();
delay(50);
}
Чтобы убедиться, что Arduino IDE может получить доступ к dev/ttcACM0, я сделал sudo chmod 666 /dev/ttyACM0
Я могу dowload успешно, но когда я хочу, чтобы открыть терминал, я получил следующую ошибку:
Erreur d'ouverture du port série « /dev/ttyACM0 ». (Порт занят) (см. прилагаемый скриншот)
Более того, когда я ввел dmesg на консоли, я вижу следующие сообщения:
[ 94.133923] usb 3-2: USB disconnect, device number 2
[ 94.133978] cdc_acm 3-2:1.1: urb 12 failed submission with -19
[ 94.135862] cdc_acm 3-2:1.1: urb 13 failed submission with -19
[ 94.136059] cdc_acm 3-2:1.1: urb 14 failed submission with -19
[ 94.136257] cdc_acm 3-2:1.1: urb 15 failed submission with -19
[ 94.136457] cdc_acm 3-2:1.1: urb 2 failed submission with -19
[ 94.136656] cdc_acm 3-2:1.1: urb 3 failed submission with -19
[ 94.136852] cdc_acm 3-2:1.1: urb 5 failed submission with -19
[ 94.137048] cdc_acm 3-2:1.1: urb 6 failed submission with -19
[ 94.138841] xhci_hcd 0000:03:00.0: WARN Cannot submit Set TR Deq Ptr
[ 94.138843] xhci_hcd 0000:03:00.0: A Set TR Deq Ptr command is pending.
[ 94.931853] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[ 95.316578] usb 3-2: New USB device found, idVendor=1b4f, idProduct=9d0f
[ 95.316581] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 95.316582] usb 3-2: Product: SFE 9DOF-D21
[ 95.316584] usb 3-2: Manufacturer: SparkFun
[ 95.320306] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
[ 858.774849] usb 3-2: USB disconnect, device number 3
[ 904.529058] TCP: wlp1s0: Driver has suspect GRO implementation, TCP performance may be compromised.
Кто-нибудь здесь сталкивался с такой проблемой?
Спасибо за вашу помощь
Фабрис
@fabrice noreils, 👍2
Обсуждение4 ответа
sudo apt-получить диспетчер режимов очистки
Это помогает мне для пользователя Linux и для многих других людей.
Теперь я играю со stm32f103, и открытие порта было болезненным.
Это было проблемой только для чипа stm32. Arduino nano работал без проблем.
Прежде чем мне нужно будет несколько раз открывать порт, чтобы инициировать связь.
Это было больно. После нахождения этого решения теперь Arduino ID работает без проблем.
Я не уверен, что удаление modemmanager повлияет на мою систему.
Я решил следующие проблемы, связанные с последовательным портом в ubuntu 18.04 следующим образом:
Проблема 1 : Не удается открыть /dev/ttyACM0: Отказано в разрешении
Решение : Предоставьте разрешения на чтение/запись в последовательный порт с помощью этой терминальной команды ---> > sudo chmod a+rw /dev/ttyACM0
Здесь замените порт tty соответствующим портом ubuntu.
Проблема 2 : Не удалось открыть /dev/ttyACM0 (порт занят)
Решение : Эта проблема возникает, когда последовательный порт занят или уже занят. Поэтому убейте занятый последовательный порт с помощью команды ---> > fuser -k /dev/ttyACM0
. Здесь замените порт tty соответствующим портом ubuntu.
Проблема 3 : Плата at /dev/ttyACM0 недоступна Решение : В этом случае ваш последовательный порт в меню сервис будет серым. Я много гуглил для этого, но ни одно решение не сработало для меня. Atlast Я попробовал другую плату arduino и USB-разъем, и это сработало для меня. Таким образом, если у вас есть старая плата arduino (может быть решена с помощью необходимых драйверов) или дефектная плата arduino, то возникает только эта проблема.
Когда у меня возникла эта проблема, я обнаружил, что запуск ps x
показывает множество задач, связанных с временными файлами монтирования. Поэтому я закрыл Arduino, запустил sudo rm -rf /tmp/.mount_arduin*
и перезапустил Arduino. Устройство успешно подключено.
Вы должны быть частью группы исходящего вызова. Попробуй это: Наберите «группы», есть ли там «дозвон»? sudo usermod -a -G tty вашеимя пользователя Пример sudo usermod -a -G tty gil
Выйдите из системы и войдите снова, чтобы изменения вступили в силу. У меня это всегда работало, и теперь оно есть в некоторых установочных пакетах Arduino.
- C++ против языка Arduino?
- avrdude ser_open() can't set com-state
- Как читать и записывать EEPROM в ESP8266
- Float печатается только 2 десятичных знака после запятой
- устаревшее преобразование из строковой константы в 'char*'
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Разница между print() и println()
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
Удалите пакет modemmanager., @Majenko
Кроме того, вы должны добавить своего пользователя в группу, которая владеет последовательными устройствами - трюк chmod придется повторять каждый раз, когда вы перезагружаете или заново подключаете плату. Наконец, вы можете использовать
lsof | grep ttyACM
, чтобы увидеть, какой процесс удерживает порт (возможно, потребуется запустить lsof от имени root, но сначала попробуйте его от себя), @Chris StrattonПросто сначала выясним простые вещи: закрыли ли вы все последовательные мониторы в других экземплярах?, @Sim Son