驱动安装实战: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 安装步骤
- 先插上USB线,把开发板连接到电脑。注意:开发板最好上电,否则有些CH340芯片不会枚举。
- 打开设备管理器(Win+X → 设备管理器)。你会看到一个带黄色感叹号的"未知设备"或"USB Serial"。
- 双击那个设备 → 选择"更新驱动程序" → "浏览我的电脑以查找驱动程序" → 选择你下载的驱动文件夹。
- 或者更简单:直接运行
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 安装步骤
- 双击
.pkg文件,一路点"继续"。 - 安装过程中,系统会弹窗提示"系统扩展已被阻止"。这时候不要点"好",要点"打开安全偏好设置"。
- 进入"安全性与隐私" → "通用" → 点击"允许"按钮(需要输入密码)。
- 重启电脑。
重启后,插上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 驱动安装全流程对比
我把三个系统的关键差异整理成了一张图,方便你对照:
4.6 驱动安装后的验证清单
不管用哪个系统,装完驱动后,建议按这个清单检查一遍:
- 设备管理器(Windows)/ 终端(macOS/Linux):确认串口设备已出现,无错误标志。
- 串口号:记下你的COM号或/dev/ttyUSBx,后面烧录时会用到。
- 波特率:确认默认波特率(通常是115200或9600)与你的开发板匹配。
- 收发测试:用串口助手或minicom发送一个字符,看开发板是否有回应。
- 热插拔测试:拔掉USB线再插上,看设备能否重新被识别。
最后说一句:驱动安装是串口烧录的第一步,也是很多人放弃的第一步。别急,慢慢来。我当年第一次装CH340驱动,也折腾了半小时。后来发现只是没插紧USB线。嗯,这种经历,你以后也会有的。