很多刚接触嵌入式开发的朋友,拿到第一块开发板之后最常卡住的地方,往往不是代码,而是串口驱动。开发板插上电脑没反应,设备管理器里一个黄色感叹号,烧录软件到处找不到串口,折腾半天也不知道是哪一步出了问题。
这篇文章我就以CH340 串口驱动安装为主线,把嵌入式入门前期最容易被忽视的“驱动环节”完整梳理一遍。文章会从 CH340 是什么、为什么需要安装驱动,到 Windows / macOS / Linux 下的安装演示,再到常见报错排查和工程建议,尽量做到跟着操作就能顺利识别串口。不管你是刚开始学 51 单片机、STM32、ESP32,还是准备参加蓝桥杯嵌入式类比赛,这篇文章都能帮你省下不少折腾时间。
1. 为什么要安装 CH340 串口驱动
1.1 CH340 是什么
CH340 是南京沁恒推出的一款 USB 转串口芯片,全称通常叫“USB 转 UART 桥接芯片”。它的作用一句话就能说清楚:让电脑的 USB 接口变成单片机开发板的串口接口。
现在绝大多数笔记本电脑已经没有原生串口(DB9 接口),但单片机开发板、GPS 模块、4G 模块、调试板等设备仍然大量使用 UART(通用异步收发器)串口通信。这时候就需要一颗类似 CH340 的芯片,在电脑 USB 和单片机 UART 之间做桥接。
可以这样理解:USB 和串口是两种不同“语言”的通信接口,CH340 就是一个翻译官。电脑把数据通过 USB 发给 CH340,CH340 翻译成 UART 电平信号交给单片机;单片机发回来的数据,再由 CH340 翻译成 USB 信号交给电脑软件。
CH340 在嵌入式入门开发板中非常常见。很多 51 单片机开发板、STM32 核心板、ESP32 开发板、Arduino 兼容板,都直接板载了 CH340 芯片。此外,还有大量独立的“USB 转 TTL 模块”也会使用 CH340。
1.2 没有驱动会怎样
如果电脑没有安装 CH340 驱动,会出现下面这些典型的“新手三连”现象:
- USB 线插上开发板后,电脑提示“无法识别的 USB 设备”;
- 设备管理器里出现一个带黄色感叹号的“未知设备”;
- 打开烧录软件或串口助手,找不到任何 COM 口。
原因很简单:操作系统不认识这颗芯片。CH340 芯片内部有固定的 USB Vendor ID(供应商 ID)和 Product ID(产品 ID),常见的是VID_1A86和PID_7523。系统看到这两个 ID 后,需要对应的驱动程序来解析设备功能,然后把芯片模拟成一个标准串口(COM 口)。没有驱动,操作系统就不知道该拿这个设备怎么办。
安装好 CH340 驱动后,设备管理器里会多出一个串口,例如:
USB-SERIAL CH340 (COM3)这个 COM 口就是单片机开发板与电脑通信的通道。
1.3 什么时候会用到 CH340
CH340 串口驱动不是只在一个场景下用到,下面这些情况几乎都会碰到:
- 开发板烧录程序:例如 STC 系列 51 单片机通过串口下载程序;
- 串口调试:查看单片机打印的日志、调试信息;
- 上位机通信:Qt、C#、Python 编写的上位机软件和单片机交互;
- 物联网模块调试:ESP8266、ESP32、4G 模块的 AT 指令调试;
- 竞赛开发板使用:蓝桥杯单片机开发板、各省嵌入式竞赛板,很多都采用 CH340。
所以 CH340 驱动安装可以看作是嵌入式入门的第一块敲门砖。它在不同电脑上表现还不完全一样,有时候插上就能免驱识别,有时候需要手动安装,有时候还要处理各种冲突,因此非常值得花时间彻底搞明白。
2. 安装前的环境准备
2.1 确认电脑上的 USB 转串口芯片型号
不同开发板使用的 USB 转串口芯片可能不同,常见的有几种:
| 芯片型号 | 常见应用 | 特点 |
|---|---|---|
| CH340 | 大量国产开发板、USB 转 TTL 模块 | 价格低,入门板最常见 |
| CP2102 | 部分 STM32、ESP32 开发板 | 免驱性好,Silicon Labs 出品 |
| FT232 | 高端调试板、工业模块 | 稳定性好,价格偏高 |
| CH9102 | 新型国产开发板 | CH340 的升级型号 |
安装驱动之前,最好先看一眼开发板上 USB 口附近芯片的丝印,确认是不是 CH340。如果芯片上印着CH340G、CH340C、CH340N、CH340T等字样,那么本文介绍的驱动就适用。如果芯片是其他型号,需要去对应厂商官网下载驱动,不要硬装 CH340 驱动。
还有一种确认方法:USB 线插上开发板后,在 Windows 设备管理器中右键未知设备,选择“属性→详细信息→硬件 ID”,如果看到VID_1A86,基本可以确定是 CH340 系列芯片。
2.2 查看操作系统类型
CH340 驱动支持 Windows、macOS、Linux、Android 等系统,但不同系统的安装包不同。Windows 下安装最简单,macOS 和 Linux 需要额外注意系统版本。
在 Windows 下,可以按Win + R打开运行窗口,输入winver查看系统版本,输入msinfo32查看系统位数。在“关于本机”里也能直接看到是 32 位还是 64 位系统。
注意一个问题:虽然现在新版本的 CH340 驱动安装包通常同时包含 32 位和 64 位驱动,但下载时最好还是先确认系统架构,避免在个别老系统上安装失败。如果是 Windows 10 或 Windows 11 用户,系统基本是 64 位,正常下载官网最新版即可。
2.3 准备一块开发板和一条数据线
驱动安装验证需要真实设备,所以建议提前准备:
- 一块带 CH340 的开发板,或一个独立的 USB 转 TTL 模块;
- 一条能传输数据的 USB 线;
- 一台可以联网的电脑(用于下载驱动)。
特别要强调数据线的问题。现在很多 Micro USB 线、Type-C 线只能充电不能传数据,插上开发板后电脑完全没反应。遇到这种情况,很多人以为是驱动坏了,其实换根线就解决了。建议多备几根不同品牌的数据线来交叉验证。
3. Windows 下 CH340 驱动的安装演示
3.1 下载官方驱动
安装驱动最稳妥的方式,是去芯片厂商官网下载,而不是从各种“驱动精灵”“驱动大师”下载站获取。第三方工具虽然方便,但有时会捆绑其他软件,有时还会安装到不匹配的驱动版本,反而增加排查难度。
CH340 官方驱动下载步骤如下:
- 打开南京沁恒官网,网址为
www.wch.cn; - 在首页搜索框输入“CH340”,进入 CH340 产品页面;
- 找到“相关下载”或“下载中心”,下载名称为
CH341SER的驱动压缩包; - 解压压缩包,里面会有
SETUP.exe安装程序,以及多个系统对应的驱动文件夹。
这里解释一下,为什么 CH340 驱动压缩包叫CH341SER。沁恒的 CH341 芯片和 CH340 在串口驱动上是共用的,所以 CH340 的驱动文件经常以 CH341 命名,这是正常现象,直接安装即可。
3.2 方式一:让 Windows 自动安装驱动
在 Windows 10 和 Windows 11 系统中,很多情况下 CH340 驱动已经内置在系统驱动库里,插上开发板就会自动安装。
操作步骤:
- 将开发板通过 USB 线连接到电脑;
- 等待几秒钟,观察任务栏右下角是否弹出“正在安装设备驱动程序”提示;
- 打开设备管理器,展开“端口(COM 和 LPT)”;
- 如果出现
USB-SERIAL CH340 (COM3)之类的条目,且没有黄色感叹号,说明驱动已经自动安装成功。
这种情况通常发生在 Windows 系统比较新、联网状态良好时。如果自动安装失败,或者设备管理器里仍然是未知设备,就需要手动安装驱动。
3.3 方式二:手动运行 SETUP.exe 安装
手动安装是最保险的方式,也推荐新手采用这种方式,因为能看到明确的安装结果。
操作步骤:
- 找到解压后的
SETUP.exe,右键选择“以管理员身份运行”; - 安装界面会出现“安装”和“卸载”两个按钮,点击“安装”;
- 等待界面提示驱动安装成功;
- 插入开发板,或者重新拔插一次 USB 线;
- 打开设备管理器,确认“端口(COM 和 LPT)”下是否出现
USB-SERIAL CH340。
这里有个细节:如果插上开发板后再运行SETUP.exe,有时会看到提示“驱动预安装成功”,意思是驱动已经加入系统驱动库,需要拔插设备或者重启一次才能完成设备枚举。如果遇到这种情况,不用慌,重新插拔 USB 线就能让新驱动生效。
SETUP.exe安装方式实际上会同时安装系统驱动和 INF 配置信息。安装完成后,CH340 设备会在系统里被识别成一个标准 COM 串口,烧录软件和串口助手都能直接按 COM 口访问。
3.4 如何验证驱动安装成功
驱动装完不等于万事大吉,最好做一次验证。
方法一:查看设备管理器
打开设备管理器的方法很多,右键“开始菜单”选择“设备管理器”,或者按Win + R输入devmgmt.msc回车都可以。重点看“端口(COM 和 LPT)”分类下是否出现USB-SERIAL CH340 (COMx),并且图标上不能有黄色感叹号。
方法二:查看硬件 ID
在 CH340 设备上右键选择“属性→详细信息”,在“属性”下拉框里选择“硬件 ID”。如果看到VID_1A86和PID_7523,说明设备识别正确。
方法三:命令行查看串口
打开命令提示符(cmd),执行:
mode输出中会列出系统当前存在的串口设备,例如:
状态 设备名 描述 ------------------------------------------- COM1 Communications Port COM3 USB-SERIAL CH340不同系统版本输出格式略有不同,但只要能看到USB-SERIAL CH340对应的 COM 口,就说明驱动已经生效。
方法四:使用 PowerShell 获取串口信息
如果你更喜欢 PowerShell,也可以执行:
Get-PnpDevice -Class Ports | Format-Table FriendlyName, Status输出示例:
FriendlyName Status ------------ ------ USB-SERIAL CH340 (COM3) OK需要注意的是,COM 口号不一定是 COM3,它会根据电脑当前已占用的串口号动态分配。如果同时插了多个 USB 转串口设备,COM 号可能会变化,这在后面排查问题时会重点讲到。
4. 开发板接线与连通性验证
驱动安装成功以后,只是说明电脑能“看见”这个串口了。能不能和单片机正常通信,还需要接线、软件和程序的配合。这一节提供一个基于 USB 转 TTL 模块的连通性验证方法。
4.1 认识 USB 转 TTL 串口模块
如果你手里的开发板没有板载 CH340,而是使用独立的 USB 转 TTL 模块,需要先认识模块上的引脚。常见引脚有:
VCC:电源输出或输入;GND:地线,必须与目标板共地;TXD:发送端;RXD:接收端;DTR、RTS:用于自动下载复位的控制线,初学者可以先不关注。
接线规则有一条核心原则:交叉连接。模块的TXD接目标板的RXD,模块的RXD接目标板的TXD,GND必须连在一起。很多新手第一次接线时把 TXD 接 TXD、RXD 接 RXD,结果数据完全不通。
4.2 接线前的安全提醒
接线前一定要先断电操作,不要带电插拔信号线。模块的VCC引脚要特别注意,如果目标板是 3.3V 单片机,而模块输出的是 5V 电源,直接给VCC供电可能会烧坏板子。正确做法是:
- 先根据目标板手册确认其工作电压;
- 如果模块支持跳线切换 3.3V / 5V,则调到对应档位;
- 如果不确定供电关系,可以先让目标板自己通过其他方式供电,只连接
GND、TXD、RXD三根线。
还要特别强调一点:TXD 和 RXD 千万不要短接到 VCC。做回环测试时只短接 TXD 和 RXD,不要接电源,否则可能烧坏芯片。
4.3 串口助手测试
当开发板或模块连接到电脑并识别出 COM 口后,可以打开串口调试助手来测试。常见的串口助手有:
- SSCOM
- XCOM
- UartAssist
- Arduino IDE 自带的串口监视器
- VS Code 的 Serial Monitor 插件
打开串口助手后,选择对应 COM 口,波特率设置为开发板程序使用的波特率。如果开发板出厂自带串口打印程序,打开串口往往能看到类似Hello World、温度数据等输出。
如果你想用代码方式快速验证,可以使用 Python 的 pyserial,在命令行中安装:
pip install pyserial然后运行:
import serial try: ser = serial.Serial('COM3', 115200, timeout=1) print('串口打开成功:', ser.name) # 发送一串测试数据 ser.write(b'hello embedded\r\n') # 读取返回数据(需要单片机有回显程序) data = ser.readline() print('收到数据:', data) ser.close() except Exception as e: print('串口打开失败:', e)注意:如果你的 COM 口号不是 COM3,需要将代码中的'COM3'改成实际端口号。这段代码只是验证串口能否正常打开和收发,需要单片机程序配合。如果单片机没有回显程序,readline()可能会阻塞或超时,属于正常现象。
4.4 串口参数与常见误区
串口通信有几项关键参数必须一致,否则即使是同一根线、同一个 COM 口,也会收到乱码:
- 波特率:常见的有 9600、115200、57600;
- 数据位:通常为 8;
- 停止位:通常为 1;
- 校验位:通常为无校验。
这个组合经常简写为8N1,即 8 个数据位、无校验、1 个停止位。开发板教程里给出的串口参数,必须和上位机设置保持一致。最典型的误区是:单片机程序用 9600 波特率打印,串口助手却设置成 115200,收到的自然是一堆乱码。
5. macOS 与 Linux 下的安装补充
5.1 macOS 下如何安装 CH340 驱动
macOS 用户在安装 CH340 驱动时,路径略有不同。首先同样从沁恒官网下载 macOS 版驱动。下载得到的安装包需要按照系统提示安装到“应用程序”或“系统扩展”中。
由于 macOS 对系统扩展和内核扩展有严格的安全校验,安装过程中可能会出现“系统扩展已被阻止”的提示。这时需要到“系统设置→隐私与安全性”中允许加载对应的系统扩展,部分系统版本提示可能需要重启电脑。
安装完成后,插上开发板,在“关于本机→系统报告→USB”中可以看到对应设备。串口设备名称一般是:
/dev/tty.wchusbserial1410后面那串数字可能不同。在终端里执行下面的命令可以看到类似输出:
ls /dev/tty.*macOS 各版本安全策略差异较大,具体以你正在使用的系统版本提示为准,但总体的思路是:下载官方驱动,安装,然后在隐私与安全性里放行系统扩展。
5.2 Linux 下 CH340 串口驱动说明
Linux 系统下,大多数发行版内核已经包含了 CH340 对应的ch341驱动,插上 USB 转 TTL 模块或开发板后会自动识别,一般不需要额外安装驱动。
插上设备后,执行:
lsusb如果看到含有1a86:7523的设备,说明 USB 层面已经识别到 CH340:
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter再执行:
dmesg | tail如果驱动加载成功,通常能看到类似:
ch341-uart ttyUSB0: ch341-uart converter now attached to ttyUSB0那么串口设备名就是/dev/ttyUSB0。如果普通用户没有权限访问串口,可以把当前用户加入到dialout或uucp组:
sudo usermod -aG dialout $USER执行后需要重新登录一次生效。注意不同发行版的用户组名可能不同,dialout在 Ubuntu / Debian 系列中很常见。如果插上设备后lsusb能看到 CH340,但dmesg没有ttyUSB0输出,可能是内核缺少驱动模块,这时需要查阅当前发行版是否包含ch341内核模块,或者手动编译安装厂家提供的 Linux 驱动。
6. 常见问题与排查思路
6.1 设备管理器显示黄色感叹号
这是最常见的现象。可能原因包括驱动安装异常、驱动版本过旧、USB 接口供电不足、数据线质量差等。
排查步骤建议按下面顺序执行:
- 换个 USB 口,优先插在电脑主机后置 USB 口,避免前面板或 HUB 供电不足;
- 换一根确认能传数据的数据线;
- 在设备管理器中右键该设备,选择“卸载设备”,如果勾选了“删除此设备的驱动程序软件”,可以连旧驱动一起清掉;
- 重新运行官方
SETUP.exe,先点击“卸载”,再点击“安装”; - 重新插拔 USB 线。
如果仍然不行,可以在设备管理器中右键设备,选择“更新驱动程序→浏览我的电脑以查找驱动程序→让我从计算机上的可用驱动程序列表中选取”,然后手动指定 CH340 驱动。
6.2 Windows 11 安装失败或提示驱动签名问题
Windows 11 对驱动签名校验比老版本系统更严格。如果你下载到的是旧版驱动,安装时可能提示“哈希值不在指定的目录中”或“无法验证发布者”,导致安装中断。
解决方法:
- 去官网重新下载最新版 CH340 驱动,新版驱动通常已经适配 Windows 11;
- 如果仍然不行,可以暂时禁用驱动程序强制签名再安装。
进入禁用驱动签名方式的方法是:按Win + I打开设置,进入“系统→恢复”,点击“高级启动”下的“立即重新启动”。也可以在执行任何操作前先保存好工作,然后在命令提示符中运行:
shutdown /r /o /t 0电脑重启后会进入蓝色高级启动界面,依次选择“疑难解答→高级选项→启动设置→重启”,重启后按数字键或 F7 选择“禁用驱动程序强制签名”。
这里必须重点提醒:禁用驱动签名是为了解决驱动安装问题的临时手段,安装完成后建议重启电脑恢复正常启动模式,不要长期关闭系统的驱动签名校验。
6.3 识别到了 CH340 但串口助手打不开
如果设备管理器里已经能看到USB-SERIAL CH340 (COM3),但打开串口助手时提示“端口被占用”或“打开失败”,通常原因不是驱动:
- 串口被其他软件占用,例如某个上位机、下载工具还没退出;
- 虚拟机软件占用了 USB 串口设备;
- 串口助手本身没有管理员权限;
- COM 口号被系统分配成一个奇怪的编号,和某些虚拟串口冲突。
排查时可以先关闭所有可能占用串口的软件,拔插一次 USB 线,然后重新打开串口助手。如果还是不行,可以在设备管理器中把 CH340 的 COM 号换成一个空闲的号码,例如 COM5、COM6。
换 COM 号的操作:设备管理器→端口(COM 和 LPT)→右键 CH340→属性→端口设置→高级→COM 端口号,选择一个系统提示“使用中”的端口,确定后重新打开串口助手。
6.4 下载程序失败,不一定是驱动问题
很多新手在 Keil、STC-ISP、FlyMcu 等软件中下载程序失败时,第一反应是“驱动没装好”。但实际上,设备管理器中已经能识别到 CH340 串口,驱动层面通常没问题。
常见的下载失败原因还包括:
- 没有选择正确的 COM 口;
- 开发板没有进入下载模式;
- STC 系列单片机需要“冷启动”,即先点下载再给单片机上电;
- STM32 部分开发板需要将 BOOT0 拉高,进入系统存储器模式才能下载;
- 串口线接线错误,TXD 和 RXD 方向接反。
遇到下载失败时,先回到基础排查:确认串口选择正确、确认下载模式、确认芯片型号和波特率设置。驱动表现正常但下载失败,大概率问题出在“流程”而不是“驱动”。
6.5 常见问题速查表
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 插上开发板完全没反应 | 数据线只能充电、USB 口损坏 | 换线、换 USB 口 |
| 设备管理器显示未知设备 | 驱动未安装或安装异常 | 重新安装官方驱动 |
| 设备管理器有黄色感叹号 | 驱动版本冲突或安装不完整 | 卸载后重新安装 |
| 设备管理器显示 COM 口不固定 | 系统自动分配串口号 | 手动固定 COM 号 |
| 串口助手提示端口被占用 | 其他软件占用串口 | 关闭占用程序或换 COM 号 |
| 打开串口成功后收到乱码 | 波特率不一致、接线虚接 | 统一波特率、检查共地 |
| 能识别 CH340 但下载失败 | 下载模式或复位时序问题 | 按开发板手册重新下载流程 |
| Windows 11 安装报错 | 驱动版本过旧、签名校验失败 | 更新驱动或临时禁用签名强制 |
7. 最佳实践与工程建议
7.1 驱动与软件使用规范
嵌入式开发环境很容易因为驱动管理混乱而变得不可控,建议从入门第一天就养成好习惯:
- 优先从芯片原厂官网下载驱动,不依赖第三方驱动工具;
- 把常用的驱动安装包、烧录工具固定放在一个工具目录下,并备份到网盘或团队共享盘;
- 重装系统后,先安装 CH340 之类的基础调试驱动,再开始开发工作;
- 尽量避免同时安装多个版本的 CH340 驱动,防止版本冲突。
还有一个容易被忽略的点:在团队协作或比赛环境中,不同电脑上 CH340 的 COM 口号可能不同,编写自动化烧录脚本时不要硬编码 COM 口,最好允许手动指定。
7.2 硬件连接安全建议
串口调试涉及真实硬件,安全规范非常重要:
- 接线前先断电,先接 GND 再接信号线;
- 信号线连接时注意 TXD / RXD 交叉;
- 不确定模块输出电压时,不要贸然用 VCC 给目标板供电;
- 使用带过流保护的 USB HUB 或开发板自带的稳压电路;
- 做回环测试时,只短接 TXD 和 RXD,不短接 VCC。
本文略去对专业电路设计的展开,但从嵌入式入门的实际操作来看,接线安全比“能跑起来”更重要。一根线接错,轻则通信失败,重则烧毁芯片,一定要谨慎。
7.3 串口调试的工程化思维
串口是嵌入式系统最重要的调试出口,建议在项目中把串口日志当成正式代码来管理:
- 统一波特率,项目组内默认 115200;
- 日志格式统一为“时间戳 + 级别 + 内容”;
- 发布版本保留必要的错误日志输出,方便现场定位;
- 串口调试时注意区分
printf重定向到哪个串口,避免在多个串口共用时打印信息混乱。
在以后学习 FreeRTOS、RT-Thread、Linux 驱动时,串口日志更是分析系统运行状态的关键工具。现在养成好习惯,后面写复杂项目会少走很多弯路。
7.4 初学者如何避免“装好了却打不开”
把问题分层,是嵌入式调试中最重要的一种能力。遇到串口相关问题时,按照下面的层次来定位:
- 驱动层:设备管理器是否识别到 CH340?没有,先解决驱动和 USB 连接;
- 软件层:串口助手能否打开 COM 口?打不开,查端口占用和权限;
- 接线层:模块和目标板的 TXD / RXD / GND 是否连接正确?是否共地?
- 参数层:波特率、数据位、停止位、校验位是否与程序一致?
- 程序层:单片机程序是否真的初始化了串口并输出数据?
这五个层面逐渐排查,就不会在一个错误方向上反复折腾。
8. 总结与下一步学习路线
8.1 本篇真正要掌握的内容
- 理解 CH340 作为“USB 转串口桥接芯片”的作用;
- 能在 Windows 下熟练安装和验证 CH340 驱动;
- 能独立处理驱动安装失败、设备管理器感叹号、串口占用等常见问题;
- 知道 macOS 和 Linux 下 CH340 驱动的基本处理方式;
- 明白驱动安装之后,串口链路仍然需要从接线、参数、程序等多个维度配合。
驱动安装只是嵌入式入门的“第 0 步”,但它直接决定了后续开发和调试能不能顺利展开。这一步走通之后,才算真正准备好进入单片机世界。
8.2 后续嵌入式入门学习路线建议
建议下一步按以下顺序继续学习:
- 点亮 LED:理解 GPIO(通用输入输出)的基本操作;
- 按键输入:学习读引脚电平、消抖处理;
- 串口通信:用串口打印调试信息,进一步理解 CH340 在开发中的作用;
- 中断与定时器:掌握单片机事件驱动的基本机制;
- 常用外设:LCD1602、PWM、ADC、I2C、SPI;
- 综合小项目:温湿度监控、智能小车、电子时钟等。
如果你用的是 51 单片机,可以从 Keil C51 和 STC-ISP 开始;如果是 STM32,可以从 CubeMX 加 HAL 库入手;如果是 ESP32,可以直接走 Arduino 或 ESP-IDF 路线。只要第一步串口驱动走通了,后面很多流程都会顺畅很多。
如果这篇文章对你有帮助,可以点赞收藏备用,也欢迎在评论区分享你在 CH340 驱动安装过程中遇到的问题,很多经典问题其实都是新人反复踩过的坑。