
拿到一块 CH340 USB 转串口的小模块很多人第一反应是“插上就能用”结果设备管理器里要么冒出一个“预安装成功”的提示要么干脆黄色感叹号Windows 11 用户还会遇到“检测不到设备”或“代码 56”的报错。CH340 这颗芯片本身不算贵几块钱的模块就能把老式串口设备桥接到现代电脑上但恰恰是芯片驱动安装这一步劝退了大量刚接触单片机、3D 打印机、路由器串口调试的新手。这篇文章不打算只扔一个驱动下载链接而是把 CH340 驱动安装这件事彻底讲透先从芯片工作原理说起再分别梳理 Windows、macOS、Linux 三套系统下的安装流程和坑点最后把“装完之后依然连不上”的排查思路整理成一份可以直接对照的手册。不管你是 Arduino 入门玩家、嵌入式开发工程师还是只想去给 3D 打印机刷个固件按这篇文章的顺序走一遍基本都能解决。1. CH340是什么为什么装个驱动会折腾这么多人1.1 一块USB转串口芯片到底干了什么CH340 是南京沁恒微电子WCH推出的一系列 USB 转串口桥接芯片核心功能就一句话把电脑端的 USB 信号转换成 TTL 电平的串口信号同时让操作系统把它识别成一个虚拟串口。也就是说从软件角度看你插上 CH340 模块后系统会多出一个 COM 口在 Linux/macOS 下是 /dev/ttyUSB0 或 /dev/cu.wchusbserialxxx你觉得是在跟串口设备通信实际上数据是走 USB 线进的芯片再由芯片转换成 UART 时序发给目标设备。这种“USB 转 TTL”的模块在嵌入式开发里太常见了比如给 STM32 下载程序、调试 ESP32/ESP8266、连接 Arduino、读取 GPS 模块数据、配置工业设备、给路由器或机顶盒做 TTL 串口调试都用得上。很多人会把“USB 转串口”和“USB 转 RS232”搞混其实 USB 转串口模块默认输出的是 3.3V/5V TTL 电平而老式电脑 DB9 串口是 RS232 电平两者电压定义完全不同不能直接互相连接。CH340 的模块要是想接 RS232 设备中间还需要加 MAX232 之类的电平转换芯片。回到驱动问题为什么一颗芯片需要装驱动而像鼠标键盘这类 USB 设备却即插即用因为 USB 协议里有通用的 HID人机交互设备和 CDC通信设备类规范鼠标键盘用的是 HID 类系统内置了驱动CH340 属于厂商自定义的 USB 转串口方案没有完全遵循系统自带的 CDC ACM 标准所以必须由芯片厂商提供对应的驱动程序操作系统才能正确识别 VID/PID 并把它映射成串口设备。1.2 驱动的安装机制决定了你会遇到多少坑USB 设备在插入电脑时会向主机上报自己的 VID厂商 ID和 PID产品 ID。CH340 的 VID 是 0x1A86常见 PID 是 0x7523系统就是靠这两个 ID 到驱动库里找匹配的驱动。Windows 自带驱动库里本来没有 CH340 的条目所以第一次插入时必须手动装一次驱动。问题恰恰出在这个“手动装一次”上。很多用户嫌麻烦直接搜索“CH340 驱动下载”然后进了一个第三方下载站下载下来一个几十 MB 的“驱动合集安装器”里面捆绑了各种“驱动管家”和弹窗广告还顺便把旧版驱动给你装上了。旧版 CH340 驱动在 Windows 7 时代没问题但在 Windows 10/11 上会遇到驱动签名校验失败、设备报错 28、代码 56 等各种灵异现象。macOS 则更特殊系统对内核扩展有严格的门禁机制安装完驱动后可能还要去“隐私与安全性”里手动允许一次很多人在这一步直接放弃Linux 反而最省心内核从很久以前就把 CH340 对应的 ch341 模块自带了大部分发行版插上就能用。所以装 CH340 驱动这件事真正要解决的核心问题不是“找不到驱动文件”而是“怎么在正确的平台用正确的方式让系统信任这个驱动”。这篇文章后面就围绕这个核心思路展开。2. Windows下CH340官方驱动安装完整流程2.1 第一步设备管理器里先确认状态不管电脑提示什么先把 CH340 模块插到 USB 口然后打开设备管理器。最快的方式是右键“此电脑”→管理→设备管理器或者按 Win X 直接选设备管理器。打开后重点看三个位置“端口 (COM 和 LPT)”节点如果驱动正常这里会出现“USB-SERIAL CH340 (COM3)”类似字样数字可能会变说明芯片已经被正确识别为串口。“其他设备”节点如果出现一个带黄色感叹号的“USB-SERIAL CH340”或“未知设备”说明 USB 枚举已经成功但驱动没有正确匹配或者驱动签名被系统拦截了。“通用串行总线设备”节点如果这里出现“USB-SERIAL CH340”但没有出现在“端口”节点下说明设备被识别成了 USB 设备而不是串口设备这属于驱动绑定错误需要手动指定驱动。很多教程会让你一上来就运行安装程序但最稳的做法是先看一眼设备管理器搞清楚设备当前处于什么状态。如果设备直接在“端口”节点下出现了说明驱动早就装好了没必要再折腾“预安装成功”这类状态则意味着驱动已经进入系统驱动库但还没和当前这个设备绑定往往需要重新拔插、换 USB 口或者手动更新驱动。2.2 下载官方驱动拒绝任何“驱动管家”CH340 的官方驱动下载地址在沁恒官网www.wch.cn进入官网后搜索“CH340”或“CH341”在“下载中心”里找到“CH340/CH341 USB转串口驱动程序”现在官网提供的是 CH341SER.EXE 的压缩包这个驱动同时支持 CH340 和 CH341 系列芯片属于通用驱动。下载下来的是一个 ZIP 压缩包建议先解压到一个单独的文件夹再运行不要直接在压缩包里双击执行因为新版安装程序安装过程中需要读取同目录下的驱动文件不解压容易报错“无法找到文件”。运行安装程序后界面非常简洁通常只有几个按钮INSTALL安装、UNINSTALL卸载以及关于窗口。点击 INSTALL几秒钟后提示安装成功即可。这里有一个细节如果之前装过其他版本的驱动建议先点 UNINSTALL 卸载干净重启后再重新安装否则旧驱动的残留信息可能导致新驱动无法正确绑定。如果电脑上已经安装了某些“驱动大师”“驱动精灵”我个人的建议是安装 CH340 之前先把这类软件卸载掉或者至少不要让它们自动接管驱动安装。它们下载的驱动版本往往滞后还可能附带推送弹窗广告为了装一个几 KB 的驱动引入一堆后台常驻进程实在不划算。2.3 手动安装驱动的具体操作如果运行安装程序后设备依然没有变成 COM 口或者设备节点上还挂着黄色感叹号那就走手动指定驱动这条路。操作路径设备管理器→右键带感叹号的“USB-SERIAL CH340”→更新驱动程序→浏览我的电脑以查找驱动程序→让我从计算机上的可用驱动程序列表中选取→端口 (COM 和 LPT)→下一步。这时候不要直接点“下一步”注意把“显示兼容硬件”下方的厂商选成 WCH IC如果列表里能看到“USB-SERIAL CH340”选中它下一步安装即可。如果在列表里找不到说明你的驱动文件目录不对或者驱动包没解压出来需要回到第 2.2 步把官方驱动包的目录准备好。手动指定驱动还有另一种方式右键设备→更新驱动程序→浏览我的电脑→选择官方驱动解压目录。这种方式会自动扫描目录内的 INF 文件并匹配 VID/PID通常能解决大多数驱动残留问题。装好之后如果设备已经正确显示为“USB-SERIAL CH340 (COMx)”但你想固定串口号可以在该设备上右键→属性→端口设置→高级→COM 端口号里改成一个不常用的号码比如 COM8、COM9避免以后插拔时串口号乱跳这个技巧在调试脚本或固定设备路径时很实用。2.4 Windows 11 与系统更新的特殊坑Windows 11 上 CH340 的问题基本集中在两种场景一是“插上没反应”二是“当时能用合盖睡眠或重启后掉线”。亲测下来最核心的原因多半是驱动版本太旧以及 USB 电源管理策略过于激进。先说驱动版本。旧版 CH340 驱动没有通过微软的 WHQL 签名或签名链不完整Windows 11 默认会直接拦截。解决办法不是去关系统的强制签名校验而是老老实实去官网下新版驱动新版驱动已经适配 Windows 11链接数字签名都正常。装完之后如果还报代码 56建议把设备的旧驱动残留卸载干净再重来一遍流程就是“拔设备→设备管理器里勾选‘删除此设备的驱动程序软件’→重启→重新插上→手动指定官方驱动目录”。再说掉线问题。睡眠唤醒后 CH340 消失十有八九是 USB 选择性暂停生效了。在控制面板→电源选项→更改计划设置→更改高级电源设置→USB 设置里把“USB 选择性暂停设置”改为“已禁用”同时在设备管理器里展开“通用串行总线控制器”逐个 USB Root Hub 的电源管理选项卡里取消勾选“允许计算机关闭此设备以节约电源”。这两个设置改完睡眠唤醒后掉线的问题能解决一大半。还有一个容易被忽略的点别插在前置面板 USB 口或劣质 USB HUB 上。前置面板供电不稳扩展坞和十几块钱的 HUB 更是各种奇奇怪怪的问题来源。CH340 对供电还算宽容但遇到“能识别但一通信就死”的故障第一件事就是换一个主机背面靠近主板的 USB 口实测。3. macOS下CH340驱动安装与权限设置3.1 下载安装包并完成系统权限放行macOS 下 CH340 驱动同样要去 WCH 官网下载搜“CH340 macOS 驱动”会找到 CH341SER_MAC.ZIP 这个安装包解压后是一个 .pkg 安装文件。安装过程和普通软件差不多双击、输密码、安装但远没有这么简单因为 macOS 从 Catalina 开始对内核扩展kext有严格的门禁。安装完 .pkg 之后首次插入 CH340 模块时系统通常会在“系统设置→隐私与安全性”里弹出一段安全提示比如“系统软件已被阻止加载”需要手动点“允许”并输入管理员密码然后重启电脑。这一步很多人会忽略以为装完 .pkg 就万事大吉了结果在终端里敲 ls /dev/cu.wchusbserial* 什么也看不到就以为驱动坏了其实只是没放行。Apple Silicon 芯片M1/M2/M3/M4和 Intel 芯片在安装流程上没有本质区别但 Apple Silicon 更容易触发安全提示拦截并且有时候重启一次还不够需要重启两次才完成驱动加载遇到这种情况不用慌耐心点。装完确认驱动加载状态可以在终端执行ioreg -rfw0 -p IOUSB | grep -i wch能看到类似“USB-SERIAL CH340”的设备信息说明硬件枚举成功。再用“ls /dev/cu.wchusbserial*”确认串口设备节点是否出现如果出现了就说明驱动已经正常工作。3.2 找不到串口设备时的排查顺序macOS 上装完驱动但找不到串口我建议按下面顺序排查效率最高先在“系统信息→USB”里看芯片有没有被枚举出来。如果 USB 设备列表里能看到名称含 CH340 的设备说明线和模块本身没有硬件问题驱动加载环节出了问题如果连 USB 列表里都没有先怀疑线材是不是只充电无数据和 USB 口。再看“系统设置→隐私与安全性”底部有没有被阻止的系统软件。有就点“允许”重启。用扩展坞的用户直接拔掉扩展坞插电脑机身 USB 口试试很多扩展坞在 macOS 下会干扰 CH340 的枚举。最后才考虑重装驱动。重装前先到“系统报告”里看驱动加载状态或者直接去 /Library/Extensions/ 目录下看有没有 CH34x 系列 kext 文件确认存在再卸载重装。顺便提一个 macOS 用户常犯的低级错误终端没有“完全磁盘访问权限”或“访达”权限时访问 /dev 下的设备节点会显示拒绝访问但 /dev/cu.wchusbserialxxx 通常不会受这个影响主要是有些串口调试软件如串口助手类 App第一次启动时会弹权限请求这个在 macOS 的“隐私与安全性→完全磁盘访问权限”里放行即可。4. Linux下CH340驱动内核自带模块与权限配置4.1 Ubuntu免驱使用步骤Linux 是三个系统里最省心的因为内核从 2.6 时代就把 CH340 对应的驱动模块写进去了模块名叫做 ch341注意不要和芯片名 CH341 混淆。在 Ubuntu、Debian、Linux Mint 这类发行版上插入 CH340 模块后驱动会自动加载。判断驱动是否加载成功插入设备后先在终端执行dmesg | tail -20正常情况下会看到类似这样的一行usb 1-1: ch341-uart converter now attached to ttyUSB0同时设备节点也会自动创建执行ls /dev/ttyUSB0能看见 /dev/ttyUSB0 就算成功了一半。但此刻直接用串口工具打开这个设备大概率会被拒绝提示类似“Permission denied”。原因很简单Linux 的串口设备节点归属于 dialout 组当前用户默认不在这个组里。解决办法是把当前用户加到 dialout 组然后注销重新登录sudo usermod -aG dialout $USERArch Linux 等发行版使用的组名稍有不同一般是 uucp 组写法换成 sudo usermod -aG uucp $USER 即可。加组之后一定要重新登录一次否则权限不会刷新。确认的方法是在终端执行 groups看看输出里是否包含 dialout 或 uucp。接着就可以用任意串口工具测试了比如picocom -b 115200 /dev/ttyUSB0或者screen /dev/ttyUSB0 115200如果只是想快速验证有没有数据收进来也可以用 cat /dev/ttyUSB0 看输出但需要注意这样只能读不能写而且一般不设置波特率时会以默认 9600 打开后面容易产生误会。4.2 RHEL系发行版与模块缺失的补充处理CentOS、Rocky Linux、Fedora 这类 RHEL 系发行版情况稍微复杂一点。内核同样带有 ch341 模块但有些精简安装版可能没把模块文件打进去或者模块没有被自动加载。插入设备后如果 dmesg 里看不到任何 CH340 相关信息先手动加载一下sudo modprobe ch341然后执行 lsmod | grep ch341 确认模块已加载。加载成功后再看有没有生成 /dev/ttyUSB0。如果你的系统连 ch341.ko 这个模块文件都没有那就只能靠编译 WCH 官方 Linux 驱动解决了。去官网下载 Linux 驱动源码包解压后会看到 ch34x.c、Makefile 之类的文件编译需要先装工具链和内核头文件sudo yum install gcc make kernel-devel注意 kernel-devel 的版本必须和当前内核版本严格一致可以先用 uname -r 查看内核版本再用 rpm -qa | grep kernel-devel 确认已安装的版本号不一致就装对应版本否则编译时会出现找不到头文件或者版本号对不上的错误。编译和安装make sudo make install sudo modprobe ch34x模块名是 ch34x 而不是 ch341这是 WCH 官方驱动的命名习惯容易和内核自带模块混淆。装完后同样用 dmesg 确认设备节点生成。在 Linux 下还有一种情况需要注意如果同时插了多个 USB 转串口设备ttyUSB 编号可能不固定。调试时要养成习惯用 dmesg 查看具体设备对应的节点或者使用 udev 规则绑定设备别名而不是死记硬背 /dev/ttyUSB0否则插拔顺序一变就容易找错设备。5. 驱动装完依然连不上一份串口调试排查手册5.1 “预安装成功”与黄色感叹号的真实含义Windows 设备管理器里出现“预安装成功”这个状态很多人看不懂字面意思容易让人误以为“已经装好了”。实际上这个状态的意思是驱动文件已经复制到了系统的驱动程序存储区但还没有真正匹配到当前插入的这个硬件实例上。常见的触发场景包括你先插着设备安装了旧版驱动系统记住了旧的驱动匹配关系或者设备插在 HUB 上枚举时出问题导致系统没能完成绑定。解决“预安装成功”的通用思路是打断系统已有的匹配关系重新触发一次枚举。操作顺序拔掉 CH340 模块→设备管理器里删除该设备并在弹出提示中勾选“删除此设备的驱动程序软件”→重启电脑→重新插入模块。插入后如果系统自动完成了驱动绑定说明问题解决如果又回到“预安装成功”就进入手动更新驱动的流程把驱动目录指定到官网新版驱动的解压目录。如果设备属性里显示错误代码 28未安装驱动或代码 56多半是驱动签名不兼容或者旧驱动没卸干净。代码 56 在 Windows 11 上尤为常见官方解释是“Windows 已经为设备加载了驱动但找不到设备”说白了就是系统驱动库里同时存在多个版本、签名冲突或者之前的驱动残留导致设备枚举失败。处理办法还是那套三板斧卸载设备、删除驱动、重启、重装官网新版。5.2 频繁掉线断连的元凶与对策CH340 模块在连接过程中频繁掉线是我在论坛上看到的最多的问题之一。掉线分为两种一种是 USB 层面直接断开设备管理器里整个设备消失又出现另一种是 USB 还在但串口停止响应软件报错“无法打开串口”或“设备被移除”。第一类掉线优先怀疑供电和 USB 电源管理。CH340 模块本身耗电不大但很多模块上带了稳压芯片和指示灯电流需求会高一些劣质 USB 线一压降就容易复位。碰上这种问题换短线、插主机背面 USB 口、关掉 USB 选择性暂停设置三个动作依次做完能解决一大半。还有一个平时不容易想到的原因静电。干燥环境下拔插模块时积累了静电芯片可能直接被静电打复位表现为“用着用着就掉重新拔插又好”这种情况建议给模块金属部分或电脑机箱做接地或者换带屏蔽的 USB 线。第二类掉线更多是硬件连接问题。串口通信时如果 TX/RX 信号线没接共地数据收发时全是乱码偶尔还会把对端设备电压钳位拉死表现为一通信就断开。排查时先用万用表量一下模块和目标板的 GND 是否导通再用示波器看 TX 引脚上有没有正常的串口波形没有波形的话要怀疑模块本身的问题而不是驱动问题。5.3 数据乱码、无法打开串口的检查清单驱动状态正常、设备也能识别但串口就是打不开或者收到的全是乱码这种事更让人抓狂因为问题根本不在驱动而在硬件连接和软件配置上。下面这份清单是我自己调试时逐项排查的顺序建议打印出来贴在工位旁边现象常见原因验证方法解决办法完全打不开串口串口被其他软件占用关闭所有串口监视器、浏览器网页串口插件重启电脑或者杀掉占用进程打开串口瞬间设备复位DTR/RTS 默认拉低触发下载模式观察目标板 LED 是否有复位动作在串口软件里取消 DTR/RTS或使用支持配置的软件收到数据全是乱码波特率不一致、TX/RX 没接对用示波器看波形确认波特率确认两端波特率完全一致交换 TX/RX偶尔收到数据偶尔丢失未共地、线路太长、杜邦线接触不良万用表量 GND 导通确认 GND 共地缩短杜邦线长度改用屏蔽线能识别但一通电就断开供电不足或短路用手摸芯片温度判断是否发烫量模块电流换独立 5V/3.3V 电源外部供电并共地对端设备无响应电平不匹配被烧坏或未正确识别电平测量模块 TX 高电平电压值3.3V 设备用 3.3V 供电的模块5V 设备用 5V 供电电平一致再连关于 TX/RX这里要重点说一次因为真的有一半的新手栽在这里模块的 TX 要接目标板的 RX模块的 RX 要接目标板的 TX也就是交叉连接不是同名相连。TXD 接 TXD 的直接后果是完全没有数据或者收一个字节丢两个字节。同时 GND 必须和目标板共地否则信号没有参考电位乱码基本是必然的。电压匹配的问题也需要重视。CH340 模块的串口电平取决于模块的供电电压模块 VCC 接 5V输出的 TTL 高电平就是 5VVCC 接 3.3V输出就是 3.3V。如果目标板是 3.3V 的单片机比如 ESP32、STM32F1 的 VDD 是 3.3V最好把模块的供电也切到 3.3V而不是默认的 5V。部分模块上有跳帽或短路焊盘可以切换如果没有的话至少别让模块的 5V TX 长期直接怼到 3.3V 的 RX 引脚上一次两次可能没事长期使用有烧引脚的风险。还有一类特别隐蔽的坑是 USB 线只有充电没有数据线芯。这种线在给手机充电时几乎感觉不到问题但插上 CH340 后设备管理器完全没有反应。判断方法很简单用这条线插一个 U 盘看电脑能不能识别到 U 盘识别不到就是纯充电线直接换线。手机上想用 CH340 的话其实不需要在手机上装什么驱动安卓和 iOS 的 OTG 功能配合对应的串口调试 App 就能直接识别核心是手机要支持 OTG且使用 OTG 转接头连接模块驱动层面系统会自动处理。6. 从驱动延伸到硬件CH340常见型号与原理图要点6.1 CH340C/CH340G/CH340N怎么选驱动问题解决以后往往下一步就是自己画板子或者挑模块所以这里把 CH340 的主流型号梳理一遍。搞懂型号差异在选型时能少走弯路尤其是千万别选错带不带晶振的型号直接影响 PCB 布线和 BOM 成本。型号封装外部晶振特点适用场景CH340GSOP-16需要 12MHz最老牌经典款大量模块在用学习板、通用 USB 转串口模块CH340CSOP-16不需要内置晶振和 G 兼容但省掉晶振功耗略低量产产品首选少一颗晶振少一个故障点CH340NSOP-8不需要内置晶振体积最小引脚最少空间紧凑的物联网模块、USB 周边小设备CH340BSOP-16不需要内置晶振在 C 基础上引出了更多控制引脚需要硬件流控或多功能控制的设计CH9102SOP-10不需要更高性能版本缓冲更大速度更高高速串口通信、大批量数据传输场景CH340G 是市面上模块最常见的方案很多成品模块用的都是它但因为外部必须要一颗 12MHz 晶振板子上容易受到晶振启振条件和负载电容影响。CH340C 算是 G 的改良款把晶振集成进去了抗干扰能力更强自己画板子的时候没有晶振电路的布局烦恼推荐优先考虑。6.2 模块接线与原理图设计的注意事项如果只是买成品模块用接线相对简单按上一节的排查表操作即可。但如果你要自己画板子集成 CH340有几个原理图和 PCB 上的细节容易踩坑简单说说。CH340 典型电路里USB 座的 D 和 D- 直接连接芯片对应引脚芯片内部已经集成了上拉电阻和匹配逻辑不需要额外串联终端电阻。V3 引脚是内部电源节点数据手册要求外接 0.1μF 去耦电容到 GND当系统用 3.3V 给芯片供电时V3 通常直接连 VCC。这个细节很多第一次画板的人会漏导致芯片不工作或者工作不稳定。晶振部分如果是 CH340G需要在 XI/XO 引脚外接 12MHz 晶振和两个负载电容容值按晶振规格书走一般取 20pF~30pF。晶振要尽量靠近芯片引脚放置走线不要绕弯负载电容的接地端也要就近打孔否则可能出现“某些板子工作正常、某些板子根本不识别”的玄学问题排查起来很耗时。还有 RTS# 和 DTR# 这两个引脚在纯数据收发场景里一般用不到但在 ESP32/ESP8266 自动下载电路里却是关键通过两只三极管和几个电阻把 RTS#/DTR# 组合逻辑转成 EN 和 IO0 的控制信号实现串口自动进入下载模式。如果只是做普通 USB 转串口这两个脚悬空即可但要注意有些模块的“自动下载电路”设计得不好会让目标板在上电或复位瞬间意外进入下载状态表现为“一打开串口软件设备就重启”这时候取决于你的实际需求换一个不带自动下载电路的纯串口模块反而更稳定。我自己调试设备时习惯先把模块和目标板用杜邦线接好GND 先接、再交叉接 TX/RX然后在软件里把波特率设置为 115200、关闭 DTR/RTS等确认能正常收发数据了再把波特率调到实际需要的数值。这套顺序看起来很基础但真的能避免九成以上的“驱动明明没问题却始终不通”的疑难杂症。CH340 驱动装好了只是一个开始后面还有整个串口链路在等着你把基础接法和排查思路记牢比收藏十个驱动下载链接管用得多。