Win10下Python通过serial.Serial连接Arduino端口报错求助
解决Python serial连接Arduino时的"could not open port 'COM4'"错误
核心问题分析
报错serial.serialutil.SerialException: could not open port 'COM4': FileNotFoundError说明系统无法找到指定的COM端口,常见原因包括端口号错误、端口被占用、驱动未正确安装。
分步解决方案
确认正确的串口端口号
- 打开Windows设备管理器(右键开始菜单→设备管理器)
- 展开「端口(COM和LPT)」列表,找到Arduino对应的串口(通常标注为
Arduino Uno (COMx)或类似名称,x为数字,不一定是COM4) - 如果看不到该条目,检查USB线是否插紧,或重新安装Arduino官方驱动
释放被占用的串口
- 关闭Arduino IDE的「串口监视器」(该工具会独占串口,导致Python无法连接)
- 关闭其他可能占用串口的程序(如第三方串口调试工具)
修正代码中的问题
serial.write()要求传入字节类型数据,原代码中的字符串需要转成bytes,同时建议添加异常处理方便排查:import serial import time try: # 替换为你在设备管理器中找到的正确COM端口 arduino = serial.Serial('COM3', 9600, timeout=1) time.sleep(2) # 等待Arduino完成初始化 # 将字符串转为字节再发送 arduino.write(b'Hello Arduino!') time.sleep(0.2) arduino.close() print("数据发送成功") except serial.SerialException as e: print(f"连接失败: {str(e)}")排查权限与驱动问题
- 右键点击Python脚本,选择「以管理员身份运行」,避免权限不足导致无法访问串口
- 检查设备管理器中Arduino设备是否有黄色感叹号,若有则卸载后重新安装驱动
内容的提问来源于stack exchange,提问作者Syed Mohammad Hasnain Raza Riz
相关产品推荐
相关产品推荐

