驱动安装实战:Windows下CH340驱动安装、macOS下CP2102驱动安装、Linux下驱动免安装验证

驱动安装,说白了就是让电脑认识你的串口芯片。很多新手在这步卡住,然后怀疑硬件坏了。其实大部分时候,只是驱动没装对。

我刚开始带项目时,有个同事折腾了一下午,串口就是没反应。最后发现他插的是USB口,但驱动装的是蓝牙的。嗯,这种低级错误我也犯过。

这一章,咱们把三个主流系统的驱动安装都过一遍。你跟着做就行,别跳步骤。

4.1 驱动芯片与系统对应关系

先搞清楚你的开发板上用的是哪种串口芯片。常见的有这么几种:

芯片型号 常见厂商 适用系统 驱动来源
CH340 / CH341 南京沁恒 (WCH) Windows / macOS / Linux 厂商官网 / 系统自带
CP2102 / CP2104 Silicon Labs (芯科) Windows / macOS / Linux 厂商官网 / 系统自带
FT232 / FT231X FTDI (飞特帝) Windows / macOS / Linux 厂商官网 / 系统自带
PL2303 Prolific (旺玖) Windows / macOS / Linux 厂商官网(注意盗版芯片)

国内最常见的,就是CH340和CP2102。前者便宜,后者稳定。我个人的习惯是:项目原型用CH340,量产产品用CP2102。原因后面会讲。

核心原则:先确认芯片型号,再装驱动。别靠猜。

4.2 Windows下CH340驱动安装

CH340在Windows下的驱动安装,其实就三步。但很多人第一步就错了——他们去百度随便下个驱动包,结果带了一堆流氓软件。

4.2.1 获取官方驱动

去沁恒官网下载。路径是:www.wch.cn → 搜索"CH340" → 找到"CH340/CH341 USB转串口驱动程序"。下载那个CH341SER.EXE文件。

为什么叫CH341?因为CH340和CH341共用同一套驱动。你下载这个就行。

避坑:我曾经见过有人装了PL2303的驱动来驱动CH340,结果设备管理器里显示感叹号。两个芯片的驱动完全不通用,别混用。

4.2.2 安装步骤

  1. 先插上USB线,把开发板连接到电脑。注意:开发板最好上电,否则有些CH340芯片不会枚举。
  2. 打开设备管理器(Win+X → 设备管理器)。你会看到一个带黄色感叹号的"未知设备"或"USB Serial"。
  3. 双击那个设备 → 选择"更新驱动程序" → "浏览我的电脑以查找驱动程序" → 选择你下载的驱动文件夹。
  4. 或者更简单:直接运行CH341SER.EXE,点击"安装"按钮。

安装成功后,设备管理器里会出现"COM和LPT"下的"USB-SERIAL CH340 (COMx)"。那个COMx就是你的串口号。

小技巧:如果插拔USB线后,COM口号变了,别慌。在设备管理器里右键属性 → 端口设置 → 高级,可以手动指定一个固定的COM号。我一般设成COM3或COM4,方便记忆。

4.2.3 验证安装

打开设备管理器,确认没有黄色感叹号。然后可以用串口助手(比如Putty、SSCOM)打开这个COM口。能打开,就说明驱动装好了。

如果打开时报"端口被占用"或"访问被拒绝",检查一下是不是有其他软件(比如Arduino IDE、串口监视器)已经占用了这个端口。

4.3 macOS下CP2102驱动安装

macOS用户注意了:CP2102在macOS上驱动安装稍微麻烦一点,因为苹果从Catalina(10.15)开始收紧了内核扩展的权限。

4.3.1 获取驱动

去Silicon Labs官网:www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers。下载CP210x VCP Driver for Mac。

注意:下载的是.dmg文件。双击打开,里面有个.pkg安装包。

4.3.2 安装步骤

  1. 双击.pkg文件,一路点"继续"。
  2. 安装过程中,系统会弹窗提示"系统扩展已被阻止"。这时候不要点"好",要点"打开安全偏好设置"。
  3. 进入"安全性与隐私" → "通用" → 点击"允许"按钮(需要输入密码)。
  4. 重启电脑。

重启后,插上CP2102的开发板。打开终端,输入:

ls /dev/tty.*

如果看到/dev/tty.SLAB_USBtoUART或类似的设备,就说明驱动装好了。

注意:macOS从Big Sur(11.0)开始,有些版本对CP2102的驱动支持不太好。我遇到过几次,装完驱动后设备不出现。解决办法是:去系统偏好设置 → 隐私与安全性 → 输入监控,把终端或串口工具加进去。嗯,这个坑我踩过两次。

4.3.3 验证安装

用screen命令测试:

screen /dev/tty.SLAB_USBtoUART 115200

如果屏幕空白且没有报错,说明串口已经打开了。按Ctrl+A,再按K,然后按Y退出。

4.4 Linux下驱动免安装验证

Linux用户最省心。因为CH340和CP2102的驱动都集成在内核里了。你插上就能用。

但"免安装"不代表"免验证"。我见过有人插上设备后,直接说"没反应",结果发现是没装minicom或screen。

4.4.1 验证设备是否被识别

插上USB线,在终端输入:

lsusb

你会看到类似这样的输出:

Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 004: ID 10c4:ea60 Silicon Labs CP210x UART Bridge

看到厂商ID和设备ID,就说明硬件被系统认出来了。

4.4.2 查看串口设备节点

ls /dev/ttyUSB* /dev/ttyACM*

CH340通常显示为/dev/ttyUSB0,CP2102也是/dev/ttyUSB0。如果显示/dev/ttyACM0,那可能是Arduino的板载串口。

小技巧:如果插拔前后对比ls /dev/tty*的输出,新出现的那个设备就是你的串口。我习惯用dmesg | tail -20看内核日志,里面会明确说"ch341-uart converter now attached to ttyUSB0"。

4.4.3 权限问题

Linux下最常见的坑是权限不足。直接打开/dev/ttyUSB0会报"Permission denied"。解决办法:

sudo usermod -a -G dialout $USER

然后注销重新登录。这样你的用户就加入了dialout组,可以访问串口了。

避坑:我曾经在Ubuntu 20.04上遇到过,加入dialout组后还是报权限错误。后来发现是brltty服务占用了串口。解决办法:sudo systemctl stop brltty,然后sudo systemctl disable brltty。嗯,这个坑让我查了半小时。

4.4.4 验证通信

用minicom测试:

sudo apt install minicom
minicom -D /dev/ttyUSB0 -b 115200

或者用screen:

screen /dev/ttyUSB0 115200

如果能看到开发板发来的数据(或者按复位键后看到乱码),说明驱动和通信都正常。

4.5 驱动安装全流程对比

我把三个系统的关键差异整理成了一张图,方便你对照:

驱动安装全流程对比图 Windows (CH340) macOS (CP2102) Linux (免安装) 1. 下载 CH341SER.EXE 沁恒官网 → 搜索CH340 2. 运行安装程序 点击"安装"按钮 3. 检查设备管理器 确认无黄色感叹号 4. 验证串口通信 串口助手打开COM口 ⚠ 常见问题 驱动被360/管家拦截 COM口被其他软件占用 1. 下载 CP210x VCP 驱动 Silicon Labs官网 2. 安装 .pkg 包 允许系统扩展 3. 重启电脑 使驱动生效 4. 验证设备节点 ls /dev/tty.* ⚠ 常见问题 系统扩展被阻止 隐私权限未开启 1. 插上USB线 内核自动加载驱动 2. 验证设备识别 lsusb 查看ID 3. 查看设备节点 ls /dev/ttyUSB* 4. 添加用户权限 usermod -a -G dialout ⚠ 常见问题 权限不足 (Permission denied) brltty 服务占用串口

4.6 驱动安装后的验证清单

不管用哪个系统,装完驱动后,建议按这个清单检查一遍:

  • 设备管理器(Windows)/ 终端(macOS/Linux):确认串口设备已出现,无错误标志。
  • 串口号:记下你的COM号或/dev/ttyUSBx,后面烧录时会用到。
  • 波特率:确认默认波特率(通常是115200或9600)与你的开发板匹配。
  • 收发测试:用串口助手或minicom发送一个字符,看开发板是否有回应。
  • 热插拔测试:拔掉USB线再插上,看设备能否重新被识别。

最后说一句:驱动安装是串口烧录的第一步,也是很多人放弃的第一步。别急,慢慢来。我当年第一次装CH340驱动,也折腾了半小时。后来发现只是没插紧USB线。嗯,这种经历,你以后也会有的。