You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyFirmata连接Arduino遇SerialException端口错误,求修复方案

解决PyFirmata连接Arduino时的SerialException错误

嘿,这个问题我之前也折腾过!从错误提示里的ctypes.WinError()和Windows系统找不到路径的描述来看,你是在Windows环境下运行代码,但却用了Linux/macOS风格的串口路径,这就是导致报错的核心原因。

问题根源

Windows系统下的串口端口命名格式是COMx(x是数字,比如COM3、COM4),而你代码里写的/dev/ttyACM0是Linux或macOS系统的串口命名方式,Windows根本识别不了这个路径,自然会抛出找不到文件的错误。

修复步骤

  1. 找到Arduino对应的正确串口

    • 打开Arduino IDE,点击顶部菜单栏的「工具」→「端口」,在下拉列表里找到带有Arduino标识的COM端口(比如COM3 (Arduino Uno)),记住这个端口号。
    • 如果看不到端口,先检查Arduino的USB连接是否正常,或者安装对应开发板的驱动程序。
  2. 修改代码中的端口路径
    把代码里的这一行:

    board = pyfirmata.Arduino('/dev/ttyACM0') #此行报错
    

    替换成你找到的COM端口,比如:

    board = pyfirmata.Arduino('COM3')
    
  3. 额外注意事项

    • 确保Arduino IDE的串口监视器没有打开,否则会占用串口导致PyFirmata无法连接。
    • 确认PyFirmata已经正确安装,若不确定可以在命令行执行pip install pyfirmata重新安装。
    • 如果你用的是非官方Arduino开发板,可能需要先在Arduino IDE里安装对应的开发板包,确保串口能被系统识别。

修改后的完整代码

import pyfirmata
import time

# 替换成你实际的COM端口
board = pyfirmata.Arduino('COM3')

while True:
    board.digital[13].write(1)
    time.sleep(1)
    board.digital[13].write(0)
    time.sleep(1)

运行修改后的代码,应该就能正常控制内置LED闪烁啦!

内容的提问来源于stack exchange,提问作者Jdeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 16:42:49