Il s'agit d'un mémorandum de solution lorsque l'erreur suivante se produit lorsque la communication série est effectuée vers micro: bit à l'aide de pySerial.
Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/serial/serialposix.py", line 265, in open self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK) FileNotFoundError: [Errno 2] No such file or directory: '/dev/cu.usbmodem14302'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "testSerial.py", line 4, in
ser = serial.Serial(port,115200,timeout=None) File "/usr/local/lib/python3.8/site-packages/serial/serialutil.py", line 240, in init self.open() File "/usr/local/lib/python3.8/site-packages/serial/serialposix.py", line 268, in open raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg)) serial.serialutil.SerialException: [Errno 2] could not open port /dev/cu.usbmodem14302: [Errno 2] No such file or directory: '/dev/cu.usbmodem14302'
Il est possible que le port USB soit utilisé à cause de l'erreur «Impossible d'ouvrir le port». Dans mon cas, c'était ** parce que j'avais le moniteur série Arduino ouvert **.
Une fois fermée, la communication série a réussi.
Il semble que cette erreur puisse être traitée du point de vue de ** N'est-ce pas faire quelque chose qui occupe le port série comme le moniteur série d'Arduino **?
testSerial.py
import serial
mac='/dev/cu.usbmodem14302'
ser = serial.Serial(port,115200,timeout = None)
ser.write(b'1')
time.sleep(1)
ser.close()
receiveSerial.js
serial.setBaudRate(BaudRate.BaudRate115200)
basic.forever(function () {
str = serial.readString()
if (str.indexOf("1") >= 0) {
basic.showIcon(IconNames.Heart)
}
})