Pregunta

Me conecto a mi placa Arduino con el siguiente código Python.

device=glob.glob("/dev/ttyUSB*")[0]
time.sleep(1)
arduino = serial.Serial(device, 115200, timeout=5)

Generalmente funciona, pero de alguna manera algún otro proceso debe acceder a la placa después de reiniciarme dándome el error

Serial.SerialUtil.SeriaLException: no se pudo abrir Port/dev/ttyUSB0: [ERRNO 16] dispositivo o recurso ocupado: '/dev/ttyUSB0'

Al desconectar y reemplazar la plug USB, puedo ejecutar el código Python normalmente, sin que ocurra el error. ¿Cómo puedo evitar cualquier otro proceso que bloquee el puerto? ¿Y cómo descubro el motivo de este error?

¿Fue útil?

Solución

Puedes usar

$ fuser /dev/ttyUSB0

Para enumerar los PID de los procesos utilizando el archivo. Alternativamente, si tu fuser El comando lo admite que puede usar el -k opción de matarlos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top