1. 先搞清楚:CH340是个什么东西,为什么每次都要装驱动
我最早接触CH340是给51单片机开发板配串口的时候,当时一块USB转串口小板才几块钱,插上电脑没反应,满世界找驱动。十几年过去,CH340依旧是嵌入式入门最容易卡住的“第一道门槛”。买Arduino开发板、ESP32模块、3D打印机主板、路由器刷机线的人,几乎都会在某个深夜跟这个芯片较劲。这篇就围绕CH340的USB转串口驱动安装这件事讲透:从Windows到macOS到Linux,从下载驱动到疑难排查,一次说清楚。
1.1 “USB转串口”到底在转什么
现代电脑早就把RS232九针串口淘汰了,但大量嵌入式设备、工业控制器、路由器、开发板还是用UART串口做调试和通信。USB转串口就是干这个的:一头插电脑USB口,另一头引出TXD、RXD、GND等引脚,让电脑通过一个虚拟串口(COM口)和设备对话。CH340就是这块转换板上最核心的芯片,内部集成了USB控制器和UART控制器,把USB数据包翻译成串口电平信号。你在Windows设备管理器里看到一行“USB-SERIAL CH340 (COM3)”,说明系统已经把芯片识别成串口设备,并分配了一个COM口号。
很多人分不清“USB转串口”和“USB转TTL”的区别。其实这俩是一回事,都指同一种东西,只是叫法不同。USB转串口模块输出的是TTL电平的TXD/RXD信号,直接对接单片机的UART引脚;而传统的RS232串口是±12V电平,不能直接和单片机连。所以搞开发、刷路由器、调STM32时,你买的“USB转TTL线”本质上就是一块CH340转换板。看清这个,你才知道自己到底在装什么驱动。
1.2 CH340的定位:便宜、量大、争议也不少
CH340是国产芯片里出货量极大的USB转串口方案。芯片价格低,外围电路简单,CH340C这类型号甚至内置了晶振,板上连12MHz晶振都能省掉。市面上的Arduino Nano克隆板、大部分ESP32开发板、STC下载器、3D打印机主板、光猫和路由器TTL刷机线,十有八九用的都是CH340或者它的兄弟型号CH341。
为什么大家爱用?核心就是便宜。一颗正品CH340也就几块钱,FT232要几十块,对成本敏感的PCB设计来说,CH340几乎是默认选项。代价是驱动体验确实没有大厂顺滑:Windows需要单独装,macOS每次大版本升级都可能遇到驱动不兼容,Linux下虽然内核自带,偶尔也会因为权限配置折腾一阵。
还有一个现实问题:市场上有大量打磨重标的仿冒CH340。芯片丝印看着是CH340,实际可能是其他系列或者不合格的次品,这会导致驱动装不上、设备被识别成未知设备。所以后面所有排查的第一步,我都会让你先看硬件ID确认芯片身份,这一步能过滤掉一大批“假故障”。
1.3 三个系统三种态度,先建立预期
总结一下三个系统对CH340的态度:Windows不自带驱动,需要手动安装或走Windows Update,装完后还要盯设备管理器里有没有感叹号;macOS需要安装内核扩展(kext),高版本系统还有安全策略拦截,装完通常要重启;Linux内核自带ch341模块,大多数发行版即插即用,真正的问题多半出在权限而非驱动本身。提前建立这个预期,后面遇到问题就不会慌。
2. Windows下驱动安装:从官网下载到设备管理器验证
Windows用户量最大,问题也最多。很多人在Win10、Win11上卡住,往往不是下载不到驱动,而是下载渠道太杂、版本太旧、残留太多。这一节我把从下载到验证的完整流程捋一遍。
2.1 驱动到底去哪下
首选沁恒官网的下载中心,搜“CH340”会看到一个驱动包,注意文件名通常叫CH341SER.EXE或CH341SER.ZIP。这里别懵:CH340和CH341在Windows下共用同一套驱动,代号就是CH341SER,下载它没错。开发板店家给的光盘驱动、驱动精灵之类的也能用,但我更推荐官网包,干净、无捆绑、版本新。
下载后右键以管理员身份运行,点安装(INSTALL),弹窗提示“驱动安装成功”即可。整个过程在Win10/11上通常只需几秒,中间UAC弹窗点“是”就行。如果你下载的是解压文件夹,里面会有SETUP.EXE和几个.inf文件,右键SETUP用管理员运行,或者右键.inf文件选择“安装”,也能完成。
提示:CH340的Windows驱动包名字叫CH341SER,并不是下错文件。CH340和CH341共用这套驱动,网上有些教程会把两者分开讲,反而把人绕晕。
这里有个隐藏技巧:如果你确定驱动已经装进系统,但设备还是黄色感叹号,可以走“设备管理器 → 右键设备 → 更新驱动程序 → 浏览我的电脑 → 从计算机可用驱动列表中选择 → 磁盘安装”,手动定位到.inf文件。这种绕开自动搜索的方式,能解决很多“明明装了却没用上”的怪问题。
2.2 “预安装成功”到底是什么意思
很多人在Win10/11上会遇到提示:插入USB转串口后,右下角弹出“正在设置设备”,过一会儿显示“设备已预安装成功”。但打开设备管理器一看,设备前面有个黄色感叹号,或者干脆显示“未知USB设备”。这个“预安装成功”其实是Windows Update自动分发了一个通用驱动包,但这一步只代表“系统已经把驱动下载并送到了设备面前”,不代表“驱动已经正确绑定到你的CH340上”。
为什么会出现这种状态?核心原因是Windows在你插入设备的第一时间,会先搜本地驱动库和Windows Update,然后尝试自动安装。如果这时拉到的驱动版本过旧、与芯片型号不完全匹配,或者电脑里有旧版驱动残留,就会发生“预安装成功但实际没驱动起来”的尴尬。类似的情况在CP2102、FT232等其他USB转串口芯片上也会出现,不是CH340独有。
解决方法不复杂:设备管理器里右键设备,选择“卸载设备”,弹出的对话框里勾选“删除此设备的驱动程序软件”,然后拔掉USB转串口模块重新插回去,让系统重新枚举一遍。如果还是不行,就用2.1里的手动指定.inf方式。别嫌麻烦,这一步能清掉绝大部分“预安装成功”的假象。
2.3 Windows 11识别不了:两种典型情况
Win11用户遇到的“不能使用”问题,通常分两种,分辨清楚能少走很多弯路。
第一种:设备管理器里能看到“USB-SERIAL CH340 (COMx)”,但有黄色感叹号,属性里错误代码是10(设备无法启动)或者56(设备已请求一个不支持的配置)。这种多半是旧驱动残留、驱动签名问题,或者之前装过另一个版本没卸干净。处理方式:先卸载设备并勾选删除驱动软件,再运行官网新版安装包覆盖一遍。如果错误代码是56,优先考虑系统里有没有其他USB串口驱动(比如CP2102、PL2303、FT232)在打架,把不用的那个卸载掉再试。
第二种:设备管理器里显示“未知USB设备(设备描述符请求失败)”或者“USB输入设备”,硬件ID里根本看不到VID_1A86。这种情况就不是驱动的锅了,要么是模块坏了,要么是线缆不通,要么是仿冒芯片。先在属性 → 详细信息 → 硬件ID里确认VID和PID。正品CH340常见的VID是1A86,CH340G/C等型号PID为7523,不同批次可能有差异,但VID一定是1A86。VID不是1A86,说明硬件本身不对,装再多次驱动也没用。
2.4 验证安装成功的三个信号
驱动装好后,先别急着跑程序,看三个信号:第一,设备管理器里“端口(COM和LPT)”下面出现“USB-SERIAL CH340”,且没有黄色感叹号;第二,双击设备打开属性,设备状态显示“这个设备运行正常”;第三,用任意串口助手能看到这个COM口,点“打开”不报错。三个信号全过,Windows这边就算通关了。注意,第三个信号经常被忽略,其实它才是“驱动真正可用”的最终证明——设备管理器只验证驱动加载,串口助手能打开才算全链路畅通。
3. macOS下CH340驱动安装:签名、重启、权限三座大山
macOS下CH340驱动的安装比Windows更有“仪式感”,因为苹果对内核扩展收得很紧。很多人卡在这里不是不会装,而是不知道装完之后还有两道“安全关卡”在等着。
3.1 先确认你的macOS版本再下载驱动
去沁恒官网下载macOS驱动时,你看到的压缩包名字和Windows版不一样,常见的是CH34xSER_MAC.ZIP,解压出来是一个CH34xSER.kext。下载前先看系统版本:点击苹果图标 → 关于本机,确认自己是Intel芯片还是Apple Silicon(M1/M2/M3),再对应不同大版本。
一个关键点:早期macOS驱动是给Intel Mac老系统准备的,M系列芯片的Mac如果直接双击安装,很可能重启后完全不起作用。现在沁恒官网对较新macOS版本提供了签名驱动,安装后只要在系统设置里允许“系统软件来自开发者”即可,不需要进恢复模式降低安全级别。如果你拿到的是开发板附赠的“远古”驱动盘,又正好是Apple Silicon机器,那大概率要折腾恢复模式了。我的建议很直接:优先用官网最新版驱动,别用附赠盘。
3.2 安装过程中的系统拦截处理
macOS从Catalina(10.15)开始,任何内核扩展(.kext)安装后都需要用户在“系统设置 → 隐私与安全性”里手动批准。安装CH340驱动后,系统通常会弹提示“系统软件/扩展已被阻止加载”,旁边有“允许”按钮。你需要点开并允许,然后重启电脑。这一步不点,驱动装了等于没装。
在Apple Silicon的Mac上,情况更严格。如果官方驱动已经签名,只需在隐私与安全性里允许一次。如果驱动较老或没正确签名,系统可能要求你进入恢复模式,执行“降低安全性”设置,允许“用户管理的内核扩展”。操作流程:关机,按住电源键进入启动选项,点“选项”进入恢复,打开“降低安全性”,勾选允许内核扩展。使用最新官方驱动时通常用不到这一步,遇到报错再考虑,别一上来就动安全级别。
3.3 升级系统后驱动失效的清理方法
很多macOS用户遇到的情况是:驱动原本好好的,升级一次系统后插上CH340完全没反应。这不一定是驱动坏了,而是大版本升级会清掉kext缓存,或者新系统拒绝加载旧版扩展。处理办法是重新安装一遍驱动,然后在隐私与安全性里再次点“允许”,重启。重装还不行,就要考虑清理旧驱动残留。
在终端里先查看是否有CH340相关扩展在运行:
kextstat | grep -i ch34x如果没有任何输出,说明驱动根本没加载。这时要检查旧驱动文件是否还残留在系统扩展目录里,常见路径是/Library/Extensions和/System/Library/Extensions。重装新版本总被旧文件干扰时,可以先把旧扩展卸载掉:
sudo kextunload /Library/Extensions/ch34x.kext然后删除对应文件,重建内核缓存:
sudo kextcache -i /重启之后再安装当前系统版本的官方驱动。这一套流程我自己在升级macOS后用过多回,比反复重装系统靠谱。操作前记得备份原文件,系统扩展目录里的东西别乱删。
4. Linux下其实“不用装驱动”,但你要知道这三件事
Linux用户最省心,CH340的内核驱动直接内置。但实际使用中还是会遇到三个常见问题:模块没加载、权限不足、设备节点不出现。把这三个点弄明白,你在Linux下用CH340基本就畅通无阻。
4.1 内核里的ch341模块
Linux下这个驱动模块叫ch341,不是ch340。它位于内核源码的drivers/usb/serial/ch341.c,同时覆盖CH340和CH341系列。大多数发行版(Ubuntu、Debian、Fedora、Arch)默认把它编成模块,插入CH340后,系统会自动加载模块,然后在/dev目录下生成设备节点,一般是ttyUSB0。
插入后可以用dmesg确认:
dmesg | tail正常会看到类似这样一行:
usb 1-1: ch341-uart converter now attached to ttyUSB0如果没看到,先检查模块是否加载:
lsmod | grep ch341没有输出就手动加载:
sudo modprobe ch341这之后一般就出现ttyUSB0了。整个流程比Windows简单得多,很多新手在Linux下一上来就搜“CH340驱动下载”,其实完全没必要。
4.2 Ubuntu下不识别时的强制加载方法
极少数情况下,你用的是精简内核、定制内核,或者某些开发板固件里没编ch341模块,插上毫无反应。这时可以手动用usbserial驱动强制绑定设备:
sudo modprobe usbserial vendor=0x1a86 product=0x7523执行完再ls /dev/ttyUSB*,一般就能看到设备。这条命令的意思很直白:让usbserial这个通用驱动接管VID_1A86、PID_7523的设备。注意,如果内核比较新而且已经有ch341模块,其实不需要这一步;但环境特殊时,这一招往往能救命。想每次开机自动加载,可以把ch341写入/etc/modules-load.d/ch341.conf这类配置文件里。
4.3 串口打不开?多半是dialout权限问题
设备节点有了,普通用户打开串口时报“Permission denied”,是Linux下最经典的问题。原因很简单:/dev/ttyUSB0默认归属root用户,所属组是dialout(Ubuntu/Debian系)或uucp(Arch系),当前用户不在组里,自然没有权限。
解决办法是把当前用户加入对应组:
sudo usermod -aG dialout $USER如果设备节点显示组名是uucp,就把dialout换成uucp。执行之后要么重启,要么重新登录一次,组权限才会生效。用groups命令能确认自己是否已经在组里。这一步卡住的人非常多,3D打印机玩家和ROS开发者尤其容易遇到。
注意:设备节点存在不等于你有权限打开。ttyUSB0经常归属dialout组,普通用户默认没有读写权限,先加组再做其他操作。
4.4 树莓派和其他ARM板卡也适用
树莓派、香橙派、Jetson这类ARM板卡上跑的也是Linux,CH340的使用逻辑和桌面Linux完全一样:插上 → dmesg看 → /dev/ttyUSB0出现 → 加组 → 打开。唯一要提醒的是,树莓派的USB供电能力偏弱,如果CH340模块上还接了其他负载,比如外部传感器供电,容易导致模块过流、设备掉线。建议用带外部供电的USB HUB。
很多人用树莓派跑Klipper、OctoPrint,发现某个传感器突然没数据,第一反应是查代码,结果最后发现是USB总线供电不稳。你先看一眼dmesg,如果有usb断开的信息,基本就是供电问题,别在代码上死磕。
5. 驱动装好还是不能用?几条排查链路和对比
很多时候问题不是驱动没装好,而是硬件或者使用方式不对。这一章把常见现象和解决思路整理成一套完整的排查链路,你照着走就行。
5.1 设备管理器里的错误代码到底在说什么
Windows设备管理器里最常出现的几个报错代码,我做了个对照表,遇到哪个直接对号入座:
| 错误代码 | 提示含义 | 常见原因 | 首选处理 |
|---|---|---|---|
| 10 | 设备无法启动 | 驱动版本不对、残留冲突 | 卸载驱动并删除驱动软件,重装官网最新版 |
| 28 | 未安装驱动 | 驱动没真正装上 | 手动指定.inf安装 |
| 43 | Windows已停止该设备 | 芯片虚焊、线缆损坏、供电不足 | 换口换线,排除硬件问题 |
| 56 | 设备请求了不支持的配置 | Win11下旧驱动残留、签名问题 | 彻底卸载后安装新版签名驱动 |
这里特别说说代码43。很多人系统重装了、驱动也换了,结果还是43,最后发现是CH340模块上的芯片虚焊。CH340多为SSOP或LSSOP封装,手工焊接时引脚容易虚焊,冷焊后受热漂移就会接触不良。用放大镜检查一遍引脚,或者重新拖一遍焊,往往比重装驱动有效。还有一种情况是USB线太长,CH340这类低成本板子的信号质量一般,线超过1.5米就可能出现设备反复掉、报代码43。换一根短粗线,问题常常迎刃而解。
5.2 CH340频繁掉线的排查顺序
CH340频繁掉线这个问题,我见的次数太多了。排查顺序建议从外到内:
- 换线。USB线分充电线和数据线,很多标着“快充”的线根本不通数据,或者数据线芯特别细。找一根短一点的、确认支持数据传输的线,先排除这个最大嫌疑。
- 换口。插到机箱后置USB口,避开前面板USB HUB的转接问题。笔记本用户直接用机身自带接口,别经过扩展坞。
- 关USB节能。Windows电源选项里打开“更改计划设置 → 更改高级电源设置 → USB设置 → USB选择性暂停设置”,改为“已禁用”。这个操作排查周期性的掉线非常有效,很多USB设备掉线都是系统节能惹的祸。
- 查供电。CH340如果还要带动外部设备,供电不足会导致复位周期,表现为每隔一段时间掉一次。改用外部独立供电。
- 最后才怀疑芯片。以上都查过还是掉线,用放大镜看焊接,补焊一遍芯片引脚,确认不是虚焊。
这五步走完,九成掉线都能找到原因。别上来就怀疑驱动,驱动不会“频繁掉线”,要么装不上,要么能用,掉线更多是硬件链路的问题。
5.3 CH340和CP2102、FT232、PL2303怎么选
市面上的USB转串口芯片就那几款,很多人不知道它们之间的差异。我做了一个对比表:
| 芯片 | 价格 | 驱动体验 | 典型场景 | 注意点 |
|---|---|---|---|---|
| CH340 | 低 | 全平台可用,Windows需装 | 开发板、刷机线、3D打印机 | 仿冒多,macOS大版本升级可能踩坑 |
| CP2102 | 中 | 官方驱动全平台 | 工业模块、老设备 | 早期版本假货多,认准Silicon Labs标 |
| FT232 | 高 | 最成熟稳定 | 专业调试、需要官方技术支持时 | 价格高,假芯片会被官方新驱动拒绝 |
| PL2303 | 中 | Windows下老芯片有驱动墙 | 老式USB转串口线 | 老版本PL2303HXA新系统不提供驱动,买新版 |
我自己的习惯是:做产品原型或者给客户交付,优先用FT232或者CP2102,稳定性好、文档全;自己做小玩具、开发板调试,CH340完全够用,性价比最高。PL2303注意一点:老版本的PL2303HXA在Win10/11下官方明确不给驱动,原厂驱动会直接拒绝安装。如果你手里有这种老线,别折腾了,换硬件是唯一解。
另外说一个和CH340容易混淆的东西:ST-Link、J-Link这类调试器。很多人把USB转串口和调试器当成一回事。CH340这类芯片是USB转串口,用于串口通信、单片机ISP下载、日志输出;ST-Link/J-Link是SWD/JTAG调试器,用于在线调试、烧录。两者的驱动不通用,USB转串口模块解决不了调试器的工作。买错工具还装了半天驱动的事,我见过不少。
5.4 回环测试:一步确认整个串口链路通不通
最后说一个压箱底的验证方法——回环测试。它能一步区分问题在电脑这边还是外部设备那边。
操作:把USB转串口模块上的TXD和RXD两个引脚用杜邦线或者镊子短接起来(有的模块标注为TX、RX,注意别碰到VCC,只连这两个脚)。打开任意串口助手,比如Putty、MobaXterm、Arduino IDE的串口监视器,选择正确的COM口号或ttyUSB0设备,波特率设9600或115200,打开串口,发送一串字符。如果接收区里出现了自己发出去的字符,说明整条链路走通了:电脑串口 → 驱动 → USB → CH340芯片 → TX引脚 → 短接线 → RX引脚 → CH340 → 电脑。这样一个闭环,能证明驱动、芯片、USB通信全部正常。
如果发什么都不回显,那问题就缩小到CH340模块本身或者线材上,而不是系统驱动层面。这一步做完,你对“驱动到底装没装好”就有了90%的把握。很多开发板卖家让你拍视频发字符看看,用的就是这一招。
我个人在Windows下折腾CH340这些年,最深的体会是:90%的驱动问题都是“旧驱动残留”和“用错了驱动包版本”造成的。很多客服给的驱动包是十年前的,放到Win11上自然不行。遇到问题先把系统里的旧驱动卸载干净,再去官网下最新包,大多数病例当场就能解决。macOS那边,每次大版本更新之前先看看官方有没有对应新版驱动,别等插上没反应了再临时找。Linux则记住一句话:设备节点在但打不开,先查权限;设备节点压根没有,再查模块和dmesg。串口调试这件事,底层通了,上层的事就顺了。希望这篇能让你第一次用CH340就少踩几个坑。