我有一个LiDAR传感器,想与计算机通信。首先,我编写了一个简单的程序来查看pySerial是否可以正常工作:
void setup() {
Serial.begin(9600);
Serial.println("Ready");
delay(1000);
}
void loop() {
Serial.println("Go");
delay(1000);
}
和应该与串行端口通信的python程序:
import serial
ser = serial.Serial('dev/cu.usbmodem14101')
首先,我运行了arduino代码,并且串行监视器打印了预期的内容(每秒进行一次)。然后我去了IDLE并尝试运行该程序。然后我得到了这个错误:
serial.serialutil.SerialException: [Errno 16] could not open port
/dev/cu.usbmodem14101: [Errno 16] Resource busy: '/dev/cu.usbmodem14101'
我进行了故障排除并找到了lsof | grep“ /dev/cu.usbmodem14101”命令仅用于获取此信息:
Julians-iMac:dev julianmcomie$ lsof | grep "/dev/cu.usbmodem14101"
Arduino 4199 julianmcomie 100u CHR 18,55
0t2557 911 /dev/cu.usbmodem14101
大多数执行此命令的人都在后台在端口上运行了一些晦涩难懂的进程,并杀死了该进程。我是arduino的新手,所以我想念什么?如果python程序要与之通信,为什么arduino会干扰python程序?