简体   繁体   English

如何在 macOS 中为 pySerial 确定 Arduino 的端口号

[英]How to determine port number of Arduino for pySerial in macOS

I would like to know how to determine the port number of the Arduino nano that is connected to my macbook if I will use it in Python.如果我将在 Python 中使用它,我想知道如何确定连接到我的 macbook 的 Arduino nano 的端口号。

Tools>Port in Arduino IDE Arduino IDE 中的工具>端口

/dev/cu.usbserial-A900afrI

I have this code in my .py file我的 .py 文件中有此代码

import serial

a = serial.Serial('A900afrI', baudrate=9600, timeout=1)

I want to know what port should I replace 'A9000afrI' with because I get an error which is this:我想知道我应该用哪个端口替换“A9000afrI”,因为我收到一个错误:

Traceback (most recent call last):
  File "/Users/cievlh/Desktop/Python/python_env/lib/python3.7/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: 'A900afrI'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "pyserial.py", line 3, in <module>
    a = serial.Serial('A900afrI', baudrate=9600, timeout=1)
  File "/Users/cievlh/Desktop/Python/python_env/lib/python3.7/site-packages/serial/serialutil.py", line 240, in __init__
    self.open()
  File "/Users/cievlh/Desktop/Python/python_env/lib/python3.7/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 A900afrI: [Errno 2] No such file or directory: 'A900afrI'
(python_env)

Got it, just included the whole string according to gre_gor.明白了,只是根据 gre_gor 包含了整个字符串。

import serial

a = serial.Serial('/dev/cu.usbserial-A900afrI', baudrate=9600, timeout=1)

Code is actually for an Arduino clone: I think they are the same.代码实际上是针对 Arduino 克隆的:我认为它们是相同的。

import serial.tools.list_ports
#Find USB Port
def find_port():  #Finds which port the arduino is plugged into
    ports = list(serial.tools.list_ports.comports())
    for p in ports:
        if '0403' in p[2]: #unique to Osepp Uno (arduino clone)                
            return p[0]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM