ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CH340/CH341串口驱动全平台安装指南:Windows 11、MacOS、Android一步到位

CH340/CH341串口驱动全平台安装指南:Windows 11、MacOS、Android一步到位 干嵌入式、玩单片机、搞3D打印的朋友几乎都碰到过这么个情况板子拿回来用数据线插上电脑设备管理器里直接给你来个“未知设备”或者黄色感叹号然后就是满世界找驱动。CH340/CH341这个芯片基本是国产开发板、USB转TTL模块、部分打印线和工业调试线的标配。标题里“别再到处找驱动了”这句话大概说出了不少人的心声。这篇就专门把CH340/CH341串口驱动在Windows 11、Android、MacOS三个平台下的下载、安装和排查讲清楚从芯片怎么识别、驱动从哪拿到装完之后端口不见了怎么办一条龙讲完。不管是刚入门的电子爱好者还是经常被设备调试折磨的硬件工程师都能照着抄作业。1. CH340/CH341芯片是什么为什么影响面这么大1.1 芯片家族的型号差异与识别要点CH340和CH341是南京沁恒微电子WCH推出的USB转串口桥接芯片。名字虽然经常被写在一起但两者其实有明确的定位区别CH340主打USB转UARTCH341在支持UART之外还能模拟并口、I2C、SPI等模式。手册里写的最高波特率通常能达到2Mbps对于绝大多数MCU调试、传感器读取、路由器刷机、3D打印机上位机通信来说这个速率完全够用。实际采购和使用中最常见的几个型号我列一下方便大家对照丝印辨认型号封装特点常见用途CH340GSOP16最经典版本需要外部12MHz晶振Arduino Nano/Uno克隆板、USB转TTL模块CH340CSOP16内置晶振外围电路最简各种蓝色USB转TTL小板CH340ETSSOP10/MSOP10小尺寸、内置晶振小体积模块、合宙等IoT开发板CH341ASOP16支持UART/并口/I2C/SPI切换BIOS烧录器、编程器、串口调试CH341F/T/BU多种封装不同功能排列组合工装、量产下载器拿到模块先看丝印和封装。“CH340G”和“CH341A”最容易搞混因为两者都是SOP16引脚也接近但功能差异不小。更关键的是就串口驱动而言CH340和CH341在Windows、macOS下可以共用同一个官方驱动包真正需要区分的是你模块的工作模式。比如CH341A如果被工作在了并口模式那你装什么串口驱动都识别不了这时要去检查芯片的配置引脚电平而不是怀疑驱动坏。1.2 现代场景里绕不开CH340/CH341可能有人觉得“现在不都是USB直连吗谁还搞串口”实际恰恰相反。嵌入式开发里最可靠、最低成本的调试通道依然是UART而CH340系列因为便宜、稳定、供货量大成了几乎所有低价开发板的默认选择。典型场景包括Arduino Uno/Nano的克隆板、ESP32烧录器板上直接焊了CH340C3D打印机主板调试切片软件和上位机之间靠串口通信路由器、交换机刷机线路板很多型号用的是CH340G转TTLGPS模块、LoRa模块、电表集中器串口调试工具几乎人手一个工业HMI触摸屏的下载线尽管部分用FTDI但低端国产屏很多是CH340PlatformIO、ESP-IDF这类新工具链在手把手烧录时第一步就是装CH340驱动一句话总结凡是电脑和外部小系统之间要走串口很多低成本方案都选了CH340系列。这也解释了为什么“ch340串口驱动”这个搜索词常年霸榜它在设备调试里太常见了。2. Windows 11下驱动下载与安装全流程2.1 下载驱动认准官方渠道别乱装“驱动大师”很多人在搜索引擎里输入“CH340驱动”前几条全是各种驱动管家、驱动精灵、一键安装工具箱。我的建议是直接去WCH官网下载别走第三方下载站。原因很简单第三方站经常捆绑安装其他软件下载下来的驱动版本还可能是四五年前的旧版在Windows 11新内核上容易出现签名问题或功能异常。WCH官网的下载路径是在“技术资料下载”或“工具与软件”里搜CH340找到“CH340/CH341 USB转串口驱动”包Windows下通常是一个zip压缩包里面包含CH341SER.EXEWindows图形界面安装程序CH341SER.INF驱动信息文件给手动指定驱动路径用CH341SER.SYS / CH341SER_x64.SYS32位/64位系统驱动文件说明文档下载时优先选最新版本注意区分32位和64位。现在的主流电脑几乎都是64位Windows 11直接运行CH341SER.EXE即可安装程序会自动识别系统架构。注意如果你用的是Windows 11 LTSC、IoT Enterprise LTSC这类精简长期服务版系统有时会屏蔽新驱动签名列表更新导致安装程序装完但设备管理器里仍然是黄色感叹号。更稳妥的做法是下载驱动后解压手动通过INF文件更新驱动路径选择“从磁盘安装”。2.2 手工安装步骤照着点就行我把从零到能用的完整过程写一遍避免新手在中间某一步卡住把USB转TTL模块插入电脑不要插前置USB口优先用主板后置USB口排除供电不足的情况。按WinX打开设备管理器展开“端口(COM和LPT)”。如果看到“USB-SERIAL CH340 (COM3)”直接出现说明Windows 11已经自动装好驱动省事。如果显示在“其他设备”里名字是“未知设备”或“USB Serial Device with 黄色感叹号”右键点击该设备选“更新驱动程序”。选择“浏览我的电脑以查找驱动程序”指向刚才解压的驱动文件夹勾选“包括子文件夹”。系统提示“Windows已成功更新你的驱动程序”后拔掉模块重新插入一次。再次打开设备管理器确认出现了“USB-SERIAL CH340 (COM3)”之类的端口项记住COM后的数字。如果直接运行CH341SER.EXE界面很简单看到“INSTALL”按钮点一下安装完成后会提示成功。这个过程是写入INF、拷贝SYS文件、注册服务三步正常情况下一两秒就完成。2.3 设备管理器常见状态对照很多朋友问“我到底装没装上”看设备管理器就够了设备管理器显示含义处理方法端口(COM和LPT) → USB-SERIAL CH340 (COM3)驱动已生效直接使用串口工具连接其他设备 → 未知设备驱动未装或芯片损坏安装官方驱动后重新拔插端口(COM和LPT) → 带有黄色感叹号的设备驱动签名被拒或版本过旧手动更新驱动或进入禁用驱动签名模式安装完全没有新设备出现USB线只供电不传数据换一根纯数据线检查USB口是否损坏关于“Windows 11下CH340不能使用”的问题绝大多数不是芯片坏了而是驱动没有正确加载。Windows 11对驱动签名要求比Win7/10时代严格很多如果安装时被安全软件拦截或系统组策略拒绝未签名驱动就会出现提示“该设备无法启动(代码 10)”或“无法验证此设备的驱动程序”。解决路径是重启电脑按住Shift点击重启进入“疑难解答→高级选项→启动设置”点击“重启”在启动设置界面按7选择“禁用驱动程序强制签名”进入系统后重新安装驱动这种方式每次重启只生效一次驱动装好后正常重启即可。日常使用不建议一直保持禁用签名状态。3. MacOS驱动安装与权限细节3.1 Intel和Apple Silicon都要装但不能装错版本MacOS上CH340/CH341驱动同样来自WCH官方文件名叫“CH34x_Install_V1.x.pkg”或类似名称。需要注意的是Mac端驱动版本更新比Windows滞后一定要下载支持你系统版本的安装包。Apple SiliconM1/M2/M3/M4的Mac和Intel Mac在新版macOS 12以上都可以用WCH官方通用二进制驱动安装包会同时包含x86_64和arm64两种架构系统自动选择。如果是旧款Intel Mac跑macOS 10.13或更早选当时对应的旧驱动即可。有几个关键点容易踩坑安装包打开后提示“无法打开因为无法验证开发者”不要慌用右键点击安装包选择“打开”或临时降低Gatekeeper限制。安装完成后驱动并不会像Windows那样立刻在桌面显示一个串口设备。需要打开“终端”输入ls /dev/cu.*如果看到类似/dev/cu.usbserial-1420这样的设备说明驱动加载成功。若安装后没有出现usbserial设备最常见原因是没有在“系统设置→隐私与安全性”里手动允许内核扩展加载。3.2 “系统软件已被阻止加载”如何处理这一步几乎每天都有Mac用户卡住。WCH驱动本质上是内核扩展KEXTmacOS从Catalina开始对KEXT管控非常严格。安装完PKG后系统底部会弹出一条提示“系统软件已被阻止加载”。正确操作是打开“系统设置 → 隐私与安全性”拉到最下面看到“系统软件来自开发者XXX已被阻止加载”之类的黄色提示点击“允许”输入用户密码确认重启Mac注意部分版本不需要重启但建议重启一次重新插入USB转TTL模块再用ls /dev/cu.*验证如果“隐私与安全性”里没有出现任何提示说明安装包没有正常写入KEXT或者被安全程序拦截了。可以先去“系统设置 → 通用 → 登录项与扩展”里查看内核扩展列表里有没有CH34x相关扩展。没有的话需要卸载驱动后重新安装。3.3 终端权限与“任何来源”设置误区有些教程会让你直接执行sudo spctl --master-disable这个命令会把Gatekeeper的“任何来源”开关调出来方便运行未签名软件。我个人的建议是装驱动时临时用可以用完最好恢复。长期关闭Gatekeeper会让电脑很容易运行到恶意软件不划算。恢复命令是sudo spctl --master-enable还有一种情况终端执行命令时报“Permission denied”或“Operation not permitted”这通常是macOS的TCC隐私保护在起作用。你需要在“系统设置 → 隐私与安全性 → 完全磁盘访问权限”里把终端App勾选上然后重启终端。这和CH340驱动本身没关系但很多人在配串口下载环境时会被这个卡住以为是驱动问题排查半天。4. Android端串口调试与“驱动”的真实关系4.1 Android并不需要传统意义上的“驱动安装”很多人第一次接触“ch340串口驱动 android”这种搜索词是因为想用手机直接连ESP32或Arduino调试。Android端绕开了Windows那种INF驱动的概念系统内核原生包含通用的USB串口驱动类CDC ACM或特定内核模块。当然前提是手机系统内核有这个支持以及你手机上装的串口App能够申请USB权限。如果你用的是原生Android或类原生系统插上OTG转接线后系统会弹窗提示“是否允许应用访问USB设备”这时候选择你安装好的串口调试工具即可。如果用的是一些深度定制系统手机厂商对USB Host模式做了限制就要去“开发者选项”里确保“USB配置”选的是“充电”或“RNDIS/CDC”而不是“文件传输”。这里有个很反直觉的点部分手机只有在USB模式是“仅充电”时才会给OTG设备供电选文件传输模式反而可能导致模块灯不亮。4.2 常用App与OTG连接步骤我实测下来比较顺手的是Serial USB Terminal界面清爽支持的芯片多CH340/CH341、CP210x、FTDI基本都认。连接步骤如下手机端装好Serial USB Terminal用OTG转接头Type-C或Micro-USB连接USB转TTL模块模块的TXD接目标设备RXDRXD接目标设备TXDGND必须共地插入手机后如果弹窗询问默认USB设备选Serial USB Terminal并勾选“始终”打开App右上角选设备可以看到类似/dev/bus/usb/001/002这样的节点点击连接设置波特率比如115200或9600开始收发数据这里有个容易踩的坑如果App里提示“Permission denied”或“Unable to claim interface”拔掉OTG线重新插一次并在弹窗时务必确认选对应用。有些定制ROM会重复询问两次权限第一次弹窗是USB设备授权第二次是App读取设备信息很多人在第一次弹窗时点了拒绝后面就一直连不上。4.3 Android Studio开发中的USB权限处理如果你是开发者想在自己的App里接入CH340串口通常会用usb-serial-for-android这个库。在AndroidManifest里要声明设备过滤器和权限uses-feature android:nameandroid.hardware.usb.host / activity android:name.MainActivity intent-filter action android:nameandroid.hardware.usb.action.USB_DEVICE_ATTACHED / /intent-filter meta-data android:nameandroid.hardware.usb.action.USB_DEVICE_ATTACHED android:resourcexml/device_filter / /activitydevice_filter.xml里类似这样resources usb-device vendor-id6790 product-id29987 / /resources其中vendor-id6790是CH340的厂商ID0x1A86product-id29987是产品ID0x7523。不同版本的芯片产品ID可能会有所不同CH340一般是0x7523CH341A也是但有些型号是0x5523或0x5584。很多人在Android Studio里移植或调试这类项目时报错“Permission denied”的另一个原因是没有动态申请USB权限。尤其Android 11以上对USB设备访问增加了更严格的限制需要在代码里先调用pendingIntent请求权限不能在拿到UsbDeviceConnection后才试图claimInterface。我在实际项目里遇到过设备已连接但bulkTransfer一直返回-1排查到最后发现是权限没有授权成功而不是线材或芯片问题。5. 常见问题排查技巧与避坑指南5.1 驱动装好了但端口时有时无先查这三个地方端口在设备管理器里闪一下又消失或者连接过程中连接断开这大概率不是驱动问题而是硬件层面的逻辑没理清。我按概率从高到低列几个原因线材不是数据线很多USB线内部只有电源线没有数据线模块灯亮但设备管理器没有反应。换线是最简单的测试手段。TXD/RXD接反串口通信必须交叉连接模块TXD接设备RXD模块RXD接设备TXD。接反后会出现数据完全收不到或者乱码。GND没共地电脑和单片机系统如果不共地串口电平参考点不一致轻则乱码重则完全无响应。这个很多人忽略尤其是用笔记本电脑供电同时又用电池给开发板供电的场景。USB Hub供电不足USB转TTL模块虽然电流需求不高但挂在劣质Hub上加上延长线损耗可能出现枚举失败。优先插主板后置USB口。另外提醒一点如果模块连接时用手摸芯片发现CH340芯片明显烫手大概率是芯片已经损坏或者引脚接错了。正常工作时芯片只是温热不会烫到不能碰。5.2 乱码和波特率不匹配“能打开com口但全是乱码”这个问题比“端口不识别”更常见。几个典型原因和对应解法我整理成表格现象常见原因解决办法全乱码没有任何可读字符波特率设置不一致两端波特率保持一致常见115200/9600/57600前半段正常后半段越来越乱串口线太长或者用了劣质杜邦线尽量控制在30cm以内必要时降低波特率只有偶尔丢字符供电不足或地线接触不良外部供电重新接GND设备管理器里波特率设置异常驱动FIFO缓冲设置干扰设备管理器→端口→高级取消“使用FIFO缓冲区”打开端口报错“另一个程序正在使用”串口被占用关闭其他串口工具或换一个COM号关于波特率还有个细节不是所有USB转串口模块都支持任意波特率。CH340官方支持范围很宽但在特别高或特别低的波特率下部分克隆芯片会有偏差。调试时如果波特率是250000这种非标值先确认芯片是不是正品再考虑是驱动参数问题。5.3 如何区分正品CH340和仿冒芯片以及与其他芯片的关系CH340太流行了市场上仿冒的、Remake的、翻新的都有。仿冒芯片最简单的特征是丝印字体不规整正品丝印清晰、深浅一致另外一个隐藏检测点是CH340G外接的12MHz晶振正品模块晶振起振稳定仿冒芯片有时会把晶振引脚虚焊导致偶发性识别失败。还有一类常见问题用户手里的模块明明是CP2102或者PL2303却一直在搜CH340驱动。三个芯片的厂商和PID完全不同芯片主要厂商ID/产品ID特点CH340/CH3410x1A86 / 0x7523WCH出品便宜克隆板标配CP21020x10C4 / 0xEA60Silicon Labs出品内置晶振稳FTDI FT2320x0403 / 0x6001FTDI出品兼容性好假货多PL23030x067B / 0x2303Prolific出品不同版本驱动不通用如果设备管理器提示“USB Serial”但没有明确显示CH340先用芯片丝印或者Windows设备描述来确认型号。FTDI和CP2102的驱动是各自官方下载和CH340不通用。PL2303则要特别注意老版本PL2303HXA和PL2303HX在Windows 11下官方驱动已经放弃支持只能换模块或者用旧系统跑别指望刷新版驱动能救活。5.4 虚拟串口与Docker、WSL的联动问题在Windows 11装Docker、WSL做嵌入式编译时很多人会遇到“宿主机能看到COM口但容器里访问不了”的问题。这个不是CH340驱动问题而是串口设备映射问题。WSL2目前对串口的支持还不算完美需要把物理串口映射到WSL2里方案通常是用USB/IP转发。如果你只是想在Windows下用串口助手建议直接跑原生exe不要绕道WSL。Docker容器内访问串口可以挂载/dev/ttyUSB0这在Linux主机上很好用但Windows Docker Desktop默认不支持物理串口穿透。另外还有一类小众场景Windows 11重新添加了WMIC有些老脚本依赖wmic查询串口信息但新系统默认没这个命令导致批处理脚本报错。这和驱动无关但会误导人以为驱动没装好。解决方式是安装“Windows SDK”里包含的旧版WMIC或者改用PowerShell的Get-CimInstance Win32_SerialPort来查询。5.5 MacOS上驱动不生效的特殊检查项前面说过了要允许内核扩展但其实还有两个隐藏问题如果插上USB转TTL模块后system_profiler SPUSBDataType能看到设备但ls /dev/cu.*里没有usbserial多半是KEXT没有加载。可以执行sudo kextload /Library/Extensions/CH34x.kext强制加载一下。Apple Silicon上如果驱动KEXT是旧版系统会拒绝加载。这时去官网确认是否有适配当前macOS大版本的驱动。MacOS升级大版本后旧版CH340驱动失效很常见需要重新下载新版PKG安装。如果ls /dev/cu.*出现了设备但串口工具打开时报错“Resource busy”说明可能有别的进程占用了这个串口检查后台是否开了多个终端监视。6. 写在最后的个人经验踩过几次坑之后我现在的基本流程是东西插上电脑先看设备管理器有COM口直接测通信没有COM口再看是芯片识别成Unknown Device还是芯片压根没被枚举到。前者多半是驱动或签名问题后者多半是线材或硬件问题。这样定位快很多不会傻乎乎重复装驱动。还有个小技巧驱动装完顺手在设备管理器里把“USB-SERIAL CH340”这个设备重命名成“我的ESP32下载器”之类的好记名字以后多个模块同时用的时候不会选错COM口。另外用串口工具之前先打开设备管理器确认COM号因为USB端口在不同USB口上插拔COM号可能会变。如果你经常在多个平台切换使用同一个模块建议Windows、MacOS、Android三个平台的驱动安装包都提前下载到本地备份。这样哪怕到了没网的环境也不会因为少一个驱动而耽误调试进度。CH340/CH341虽然看起来只是一个不起眼的小芯片但把它研究透了设备调试的路会顺很多。
返回列表