串口调试这件事,在工控现场、嵌入式开发、老旧设备维护里几乎是绕不开的基本功。偏偏很多人手里的调试机还停在 Windows 7 上——系统干净、驱动兼容、现场机器不让升级,而原生系统里那个叫"超级终端"的东西早就不见了。于是问题来了:Windows 7环境下超级终端配置与串口通信到底该怎么做?这篇文章就是围绕这个具体问题展开的。我会从"超级终端为什么消失、它当年到底干了什么"讲起,把驱动准备、COM口确认、波特率等参数配对、终端工具的界面配置、日志抓取、脚本化收发、故障排查这一整条链路拆开讲透。适合三类人看:一是刚接手串口调试、看到一堆参数就发怵的新手;二是手里有一批 Win7 老机器、需要长期维护现场设备的老工程师;三是想把这套流程固化成可复用方案、以后不用每次重新摸索的人。全文都是可以直接抄作业的参数、命令和排查顺序,不需要你再去东拼西凑。
1. 先把历史问题说清楚:Win7 里没有超级终端怎么办
1.1 超级终端当年到底承担了什么角色
很多人对超级终端的印象停留在"一个黑底白字的窗口",但它真正的价值在于把物理串口抽象成一个可交互的字符终端。具体来说它干四件事:按约定参数打开串口、把收到的字节流显示成文字、把键盘输入按字节发出去、把整段会话录成文本文件。这四件事里,前两件是基础,后两件才是真正决定工作效率的部分——尤其是会话录制,现场调试设备时如果没把日志留下来,事后再想复盘基本等于重来一遍。
所以当系统里没有这个组件之后,问题不是"没窗口可用",而是"能不能找到一个同样能可靠打开串口、并且愿意把日志落到本地"的替代品。理解了这一点,后面的选型思路就清晰了:不要去纠结界面像不像,而要看它打开串口的稳定性、字符编码的处理方式、日志保存的粒度这三项。
我见过不少人第一步就走偏了,在系统里翻"附件→通讯",找不到就开始装各种来路不明的工具,最后把机器搞得一堆弹窗。其实正确的做法是先明确自己的使用场景,再倒推需要什么能力。
1.2 Windows 7 下可行的三条路线
我实际用过并且推荐给同事的路线有三条,各有各的适用面。
第一条是第三方串口终端软件。这类工具承担的就是当年超级终端的角色,配置项基本一一对应,上手成本最低,功能也最全。开源和商业的都有,界面逻辑大同小异,熟悉一个基本就可以平移使用。
第二条是系统自带的命令行能力。Windows 自带mode命令可以设置串口参数,再配合重定向就能完成最基础的单向输出。这条路线的好处是零安装、纯绿色,特别适合那种"只允许装允许的工具"的受限环境,缺点是交互性差,双向收发要自己想办法。
第三条是脚本化收发。Windows 7 上可以跑 .NET 的System.IO.Ports.SerialPort,用 PowerShell 直接调,也可以用 C# 写个几十行的小工具。这条路线的价值在于可重复——一旦你把参数、时序、解析逻辑写进脚本,下次换台机器复制过去就能跑,不用再点一遍界面。
三条路线不是互斥的,我自己的习惯是用工具做探索式调试,用脚本做批量验证。
1.3 三条路线的对比与选型建议
下面这张表是我按实际使用体验整理的,参数按"够不够用"而不是"全不全"来排。
| 路线 | 安装成本 | 交互能力 | 日志留存 | 自动化 | 适合场景 |
|---|---|---|---|---|---|
| 第三方终端软件 | 低(绿色版可直接拷) | 强,实时双向 | 强,可全程录制 | 弱 | 现场调试、console 登录、设备首次上电 |
| 系统自带命令 | 零 | 弱,偏单向 | 用重定向可保存 | 中 | 受限环境、快速验证某口是否可用 |
| 脚本化收发 | 中(要写代码) | 视实现而定 | 完全可控 | 强 | 批量测试、长时间无人值守采集 |
选型的判断标准其实只有一条:这次调试要不要人盯着。要人盯着就选第一条,机器自己跑就选第三条。第二条是应急用的,比如到现场发现工具没带,用它先把口打开确认硬件没问题。
提示:不要在一个项目里混用三套方案的不同参数写法。串口参数写错一位,表现出来的现象可能和硬件故障一模一样,排查时会浪费大量时间。
1.4 一个容易忽略的前置问题
在动手配置之前,先确认这台 Win7 机器的位数和 .NET 版本。32 位系统上部分新版工具跑不起来,绿色版如果带了依赖运行库,拷到离线机器上会提示缺文件。我的做法是在调试机固定放一个"串口工具包"目录,里面同时准备 32 位和 64 位两套,附一份版本说明,交接给同事时不用再解释。
另外,Win7 的资源管理器默认可能隐藏已知文件扩展名,绿色工具拷过来后.exe被改成别的名字也看不出来。这类小问题在紧张的现场排查里最容易带来误导,建议进系统第一件事就把扩展名显示打开。
2. 驱动与硬件:串口能通的前提条件
2.1 确认你手里是哪一种串口
这一步经常被跳过,但它决定了后面所有的参数和线序。常见的物理形态有两种:一种是主板自带的 DB9 九针接口,另一种是通过 USB 转出来的虚拟串口。前者在工控机和老式笔记本上常见,后者现在更普遍。
如果用的是 DB9 直连,必须搞清楚线序。设备端的 console 口大多是 DTE 定义,而调试机如果也是 DTE,中间就需要交叉线,否则收发的两对信号接反,表现为"打开的窗口一片空白,敲键盘也没反应"。有些设备的随机附件里带的是一根标注了 console 的专用线,那种线内部已经做了交叉,插上直接能用;如果自己压水晶头或者焊 DB9,务必先测通断。
USB 转串口这一侧,重点不在线序而在芯片。市面上主流的几种桥接芯片在 Win7 上表现差异明显,尤其是老版本的驱动兼容问题,这一节后面细说。
2.2 USB 转串口芯片的驱动差异与踩坑点
Win7 上我遇到过最多的三个坑,都集中在驱动版本上。
第一个坑是驱动版本和系统补丁的匹配。有些老驱动在未打补丁的 Win7 上装得上,打了某个补丁之后反而蓝屏,反过来也有。稳妥的做法是:先在设备管理器里看芯片型号,再去取对应系统的驱动,装完立刻重启,然后再插拔一次确认枚举稳定。
第二个坑是多设备同时插。同时插两根不同芯片的转接线,容易出现端口号跳变、设备消失。这不是芯片坏了,通常是驱动之间抢资源或者 USB 供电不足。我的经验是尽量让同一台调试机上的转接线用同一种芯片,减少变量。
第三个坑是"显示已安装但没有 COM 口"。这种情况先看设备管理器里有没有黄色感叹号,再看是不是落在"其他设备"下面。如果有感叹号,右键卸载设备(勾选删除驱动)后重新插拔,让系统重新枚举,通常能恢复。
| 芯片类型 | Win7 适配情况 | 常见现象 | 处理方向 |
|---|---|---|---|
| CH340 系 | 良好,驱动包小 | 端口号偶尔跳变 | 固定端口号,避免频繁插拔 |
| PL2303 老版本 | 需匹配驱动版本 | 设备识别但无法收发 | 换匹配驱动,注意版本区分 |
| FT232 系 | 稳定,驱动成熟 | 基本无异常 | 优先选用 |
| CP210x 系 | 良好 | 休眠后掉线 | 关掉 USB 选择性暂停 |
注意:关闭 USB 选择性暂停这个动作很关键。Win7 的电源管理默认会在空闲时给 USB 设备降功耗,转接线被挂起后,串口看起来还在,实际已经不收数据了。设备管理器里找到对应的 USB 根集线器,电源管理页把"允许计算机关闭此设备以节约电源"的勾去掉,能省掉大量莫名其妙的间歇性丢数据。
2.3 在设备管理器里确认 COM 口号
驱动装好后要做的事只有一件:记住端口号。展开"端口(COM 和 LPT)",会看到类似USB-SERIAL CH340 (COM3)的条目。这个 COM3 就是后面所有配置里要填的端口。
端口号并不固定,换一个 USB 口就会变。这在写脚本时是个麻烦事,解决办法有两个:一是在设备管理器里手动指定一个高位端口号(比如 COM20),二是脚本里做自动枚举。我倾向于前者,因为现场交接文档写"接 COM20"比写"接别的口自己看"要清楚得多。
另外提醒一句,端口号被占用是很常见的报错。占用它的可能是另一个终端工具没关干净,也可能是某个后台服务。任务管理器里看不到串口句柄,最快的办法是把可疑的工具全部退出,必要时拔插一次转接线强制释放。
2.4 先做一次回路自测
在接设备之前,强烈建议先做一次自测:把转接线的 TX 和 RX 短接(有的成品线带自环帽),然后在终端工具里打开端口,随便敲几个字符。如果关掉本地回显后依然能看到自己敲的内容,说明端口打开、参数设置、收发链路都是通的,问题不在这一层。
这一步能挡掉后面一大半的误判。我见过太多次"设备不响应",最后查出来是端口根本没打开,或者打开的其实是另一个 COM 口。
3. 参数配置:五个参数配错一个就等于没连上
3.1 波特率、数据位、停止位、校验位、流控到底在管什么
串口通信的本质是把一串 0 和 1 按时间切成一个个电平。为了让收发双方对"每一位持续多久"有共识,就需要波特率。为了让接收方知道"一帧数据从哪开始、到哪结束",就需要数据位、校验位、停止位这一组约定。而流控解决的是"发得太快对方接不住"的问题。
用生活化的说法:波特率是说话的语速,数据位是每个字几个笔画,校验位是每句话末尾加个校验码看有没有听错,停止位是句号,流控是"你先别说了,我记一下"的手势。任何一项对不上,接收方听到的就是噪音。
最常用的组合是115200-8-N-1,也就是波特率 115200、数据位 8、无校验、停止位 1,流控为无。绝大多数网络设备、开发板、工控模块的 console 口都是这个配置。但"绝大多数"不等于"全部",遇到乱码第一件事永远是回头核对这五个参数,而不是怀疑线坏了。
3.2 常用设备参数速查表
下面这张表是我按常见设备类型整理的起步参数,实际以设备手册为准,表里的值只用于快速试。
| 设备类型 | 波特率 | 数据位 | 校验 | 停止位 | 流控 |
|---|---|---|---|---|---|
| 网络设备 console | 9600 或 115200 | 8 | 无 | 1 | 无 |
| 工控 PLC 调试口 | 9600 | 8 | 偶校验 | 1 | 无 |
| 单片机/开发板 | 115200 | 8 | 无 | 1 | 无 |
| 老式仪表 | 4800 | 7 | 偶校验 | 2 | 无 |
| 长距离传输模块 | 9600 | 8 | 无 | 1 | 硬件流控 |
表里 7 数据位、2 停止位这种组合现在少见,但在老设备上确实存在。如果敲出来的字符总是高位错乱,比如字母大小写乱跳,优先怀疑数据位和校验位设错了。
3.3 终端工具的配置步骤与关键选项
以常见的开源终端工具为例,配置路径基本都是"新建会话→选串口→填参数"。需要重点确认的选项有五个:
第一,连接类型一定要选 Serial 而不是 SSH/Telnet。这类工具默认可能是网络协议,选错了会去连 IP,自然连不上串口。
第二,端口号与设备管理器里一致。这里最容易出现手填错位,比如设备管理器是 COM3,工具里填了 COM4。
第三,流控设为 None。除非设备手册明确要求硬件流控,否则默认的 XON/XOFF 会让设备输出的数据在特定字符处被吞掉,表现是日志中间缺一段。
第四,本地回显。建议先关。开着的话你敲的每个字符都会本地显示一遍,而设备回显一遍,屏幕上就是双份。很多人第一次调试以为设备"重复输出",其实是被这个选项坑了。
第五,字符编码与换行。这是最隐蔽的一项,下一节单独说。
配置完成后建议把会话保存下来,命名规则用"设备类型-端口-波特率",比如PLC-COM3-9600。下次直接双击,不用重新填。
3.4 编码与换行:看起来是乱码,其实是设置问题
编码这一项,Windows 上的终端工具处理方式不完全一样。设备输出的是原始字节,工具要决定用什么字符集去解释它。如果设备发的是纯 ASCII,怎么设都差不多;一旦涉及中文提示或者扩展字符,设错了就是一屏问号或者方块。
换行的坑更常见。串口里换行有两种表示:回车(CR,0x0D)和换行(LF,0x0A)。有的设备只发 CR,有的发 CR+LF。如果终端工具的回车动作被配置成发送 CR+LF,而设备只认 CR,就会出现"敲一次回车,设备回两行提示"的现象。反过来如果配置不匹配,可能出现整屏内容挤在一行。
我的处理顺序是:先保持工具的默认换行设置,看设备响应是否符合预期;如果出现多行提示或行粘连,再去改"回车动作"相关的选项,逐项试。这个过程不要一次改多项,否则改对了也不知道是哪一项起的作用。
提示:设备手册里如果写了"终端需设置为 VT100",指的是终端类型模拟。这个选项影响的是设备发过来的控制字符(比如清屏、光标移动)怎么被解释,和波特率无关,但设错会导致屏幕刷得乱七八糟。找不到对应选项时选 VT100 兼容模式通常最稳。
4. 实操全过程:从打开端口到跑通一次完整会话
4.1 上电顺序与首次连接
现场调试有个顺序问题:先开终端还是先给设备上电,结果不一样。多数设备在上电瞬间会往串口吐一段启动信息(版本号、内存大小、自检结果),这段信息只在那个窗口期出现一次,错过了就得重启设备。所以正确的顺序是:先把终端工具打开、端口打开、屏幕上保持等待状态,再给设备上电。
如果设备已经跑起来了才接上串口,也别急着断定没输出。先敲一次回车,很多设备的命令行需要收到回车才会吐出提示符。敲了没反应,再检查参数。
第一次连上以后,建议立刻做三件事:确认能敲命令并看到回显、执行一条无副作用的查询命令(比如看版本)、把这段会话开始录制日志。这三件事做完,你才算真正"连上了",而不是"看着像连上了"。
4.2 日志录制的粒度选择与文件管理
日志录制不是开个开关就完了,粒度要选。常见的三种:
- 原始字节流:把收到的所有字节原样写入文件。优点是信息无损,控制字符都在,事后可以用脚本重新解析;缺点是文件里会有大量不可见字符,直接看比较难受。
- 纯文本:过滤掉控制字符只留可读内容。好看,但会丢掉一些时序线索。
- 带时间戳:每行前面加时间。排查"设备多久没响应""哪一步卡住"时这是最有用的,代价是文件会变大。
我自己的习惯是默认开带时间戳的文本录制,另外在关键节点手动截屏或者复制一段完整输出。因为纯文本录制在遇到设备发大段二进制数据(比如固件升级)时会写出一堆乱码,那种情况需要切回原始字节流。
文件命名也值得花点心思。我用的格式是设备编号_日期_时段_动作.log,比如A01_0305_am_启动自检.log。半年后回过头来找某次异常,靠文件名就能定位,不用一个个打开翻。
4.3 用系统命令快速验证串口可用性
如果手边没有终端工具,或者想确认某个口到底能不能用,Win7 自带的命令就够了。先设置参数:
mode COM3: BAUD=115200 PARITY=N DATA=8 STOP=1执行后如果没报错,说明参数被接受,端口存在且可打开。接着可以用重定向把设备输出写到文件:
type COM3: > capture.txt这条命令会一直挂着等数据,按 Ctrl+C 中断后capture.txt里就是这期间收到的内容。它不适合做双向交互,但用来验证"设备到底有没有在发东西"非常有效——只要文件里有内容,就说明硬件链路和参数是对的,问题一定在终端工具那一侧。
还有一个用法是把文件内容直接怼进串口:
type command.txt > COM3:比如你要给设备连续发几条配置命令,可以先把命令写进文本文件,一次性灌进去。这种方式没有回显也没有确认,适合批量的、不需要交互的场景。
4.4 用 PowerShell 做可控的双向收发
需要真正双向并且能写逻辑时,PowerShell 是最快的路径,因为 Win7 自带,不用装任何东西。核心就是 .NET 的SerialPort类。
$port = New-Object System.IO.Ports.SerialPort $port.PortName = "COM3" $port.BaudRate = 115200 $port.Parity = [System.IO.Ports.Parity]::None $port.DataBits = 8 $port.StopBits = [System.IO.Ports.StopBits]::One $port.Handshake = [System.IO.Ports.Handshake]::None $port.ReadTimeout = 2000 $port.WriteTimeout = 2000 $port.Open() $port.WriteLine("status") Start-Sleep -Milliseconds 500 $resp = $port.ReadExisting() $port.Close() $resp这段代码有几个地方值得说明。Handshake显式设为None,是因为默认值在某些环境下并不等于"无流控",显式写清楚能避免意外。ReadTimeout一定要设,否则设备不返回数据时脚本会永远挂在那里,现场无人值守的采集任务最怕这个。Start-Sleep的作用是给设备留响应时间,具体多少要看设备,500 毫秒是个保守值,短命令通常够用。
读取方式也有讲究。ReadExisting()读的是缓冲区里现有的全部内容,返回快但不保证读到完整一帧;ReadLine()会等到换行符,适合设备输出以换行结尾的场景,但设备不发换行就会超时。我的做法是:命令类设备用ReadLine()配合超时,连续数据流用ReadExisting()循环读。
如果要长时间采集,把整个逻辑包在一个循环里,加上异常捕获和重连:
while ($true) { try { if (-not $port.IsOpen) { $port.Open() } $line = $port.ReadLine() "$(Get-Date -Format 'HH:mm:ss.fff') $line" | Out-File -Append -Encoding utf8 "log.txt" } catch { Start-Sleep -Seconds 2 } }这里用Out-File -Append而不是每行重写整个文件,是因为长时间运行下来文件可能有几十万行,重写会越来越慢。加上毫秒级时间戳,事后能算清每条数据之间的间隔。
注意:脚本里不要用
Write-Host输出日志后再靠人工复制。长时间运行的采集一旦中断,屏幕上滚过去的内容是找不回来的,一定要边读边落盘。
4.5 文件传输:Xmodem 与 Zmodem 的实际差别
老设备传文件经常走串口协议。两种最常用:
Xmodem是逐块传输、每块校验,速度慢但极其可靠,中断了可以从断点续传(取决于实现)。它的问题是没有文件名和大小信息,接收端得自己指定文件名。
Zmodem效率高得多,带文件名和大小,支持断点续传和自动协商,是现代终端工具的默认选择。但它对时序更敏感,如果设备端实现不完整,容易出现传输中途卡死。
实操上我的建议是:小文件(几 KB 的配置文件)用 Xmodem,一段一段来,出问题好定位;大文件(固件)优先试 Zmodem,如果反复失败,退回 Xmodem 分段传。传之前一定确认设备的存储空间够,传一半写满导致设备变砖的情况是真会发生的。
5. 常见问题与排查技巧实录
5.1 乱码的三种成因与区分方法
屏幕上出现乱码,成因基本是三类,区分方法不一样。
参数不匹配型:整屏都是随机符号,敲回车也没反应。这类最常见,直接回头核对波特率、数据位、校验位。
编码不匹配型:ASCII 部分正常,中文或者特殊符号变成问号。这类只要改终端工具的字符编码设置。
电平不匹配型:偶尔能出正确字符,但夹杂大量杂讯。这种情况要考虑线太长、干扰大、共地没做好。RS-232 理论上十几米内没问题,但现场如果和动力线捆在一起走,几米就出问题。
判别顺序建议从参数开始,因为改参数成本最低。
5.2 完全没输出时的排查顺序
"打开端口了但什么都没有"是最常见的问题,我固定按下面的顺序查,基本三次之内能定位。
- 端口号对不对。设备管理器再看一遍,注意插拔后端口号可能变。
- TX/RX 有没有反。用自环测试验证线本身,再检查和设备端的接法。
- 设备是否真的在输出。用
type COM3: > capture.txt抓一段,文件空就说明设备没发,或者发在了别的参数上。 - 是不是需要敲回车唤醒。很多设备静默等待输入,不敲回车不吐提示符。
- 流控是不是开着。硬件流控开着而设备没接对应引脚,会导致数据被"按住"发不出来,表现和没输出一样。
- 设备是否需要外部触发。有些设备要按复位键或者短接某个引脚才开始输出。
这六步里,第 3 步是最有价值的,因为它把"终端工具的问题"和"设备的问题"彻底分开了。
5.3 数据间歇性丢失的典型原因
现象是日志中间偶尔缺几行,或者长命令执行到一半设备没反应。按出现频率排,原因有四个:
| 现象 | 可能原因 | 验证方法 | 处理 |
|---|---|---|---|
| 空闲一段时间后丢数据 | USB 选择性暂停 | 空闲前后各发一条命令对比 | 关闭电源管理中的挂起 |
| 高速率下丢字节 | 转接线芯片缓冲不足 | 降低波特率对比 | 换芯片方案或降速 |
| 大量数据时丢包 | 流控未启用 | 打开硬件流控对比 | 按设备支持启用流控 |
| 不定时断开重连 | 驱动冲突或供电不足 | 换 USB 口/换单设备测试 | 统一芯片、用带供电的集线器 |
其中"USB 选择性暂停"和"供电不足"这两个,靠改软件配置是解决不了的,必须动电源设置或者换硬件。我一般会在调试机上固定用一个带独立供电的 USB 集线器,把这类问题提前消掉。
5.4 端口被占用与句柄释放问题
报"拒绝访问"或者"无法打开端口",八成是被占用。Win7 上查占用的方法不直观,我的处理顺序是:先关掉所有可能打开串口的程序(包括后台的、最小化到托盘的),还不行就拔掉转接线再插回,强制系统释放句柄,再不行就重启相关服务。
有个细节值得记住:某些终端工具在关闭窗口后进程还挂着,端口依然被占。任务管理器里搜一下进程名,手工结束掉。这也是我倾向用绿色工具的原因——进程干净,关了就是关了。
5.5 排查速查表
把上面几节压缩成一张表,贴在调试机旁边比较实用。
| 现象 | 第一步查什么 | 第二步查什么 | 兜底动作 |
|---|---|---|---|
| 整屏乱码 | 波特率 | 数据位/校验位 | 换已知可用参数试 |
| 完全无输出 | 端口号 | TX/RX 线序 | 自环测试 |
| 能收不能发 | 流控设置 | 终端工具写权限 | 换工具复现 |
| 间歇丢数据 | 电源管理 | USB 供电 | 换带供电集线器 |
| 端口打不开 | 其他程序占用 | 设备管理器状态 | 拔插/重启服务 |
| 中文乱码 | 字符编码 | 换行设置 | 改原始字节流录制 |
提示:每次排查前先做一件事——把当前的现象、时间、你已经做过的操作记下来。串口问题经常是"改了一个设置,现象变了,但不知道是不是这个设置引起的"。有记录才能做对比,否则就是在猜。
6. 让这套方案在 Win7 上长期可用
6.1 绿色化部署与配置备份
Win7 机器的生命周期往往比预期长,很多现场一用就是七八年。在那种不能随便装软件的环境里,把串口工具做成绿色化部署是最省事的:工具目录整个放在一个固定路径,会话配置文件一起带上,换机器直接拷。
配置备份要注意两点。一是终端工具的会话配置通常存在用户目录下,不是程序目录,重装系统会丢;二是脚本里的 COM 口号是硬编码的,换机器要改。我的做法是把脚本里的端口号抽成一个参数,开头集中定义,改一处就行。
param( [string]$PortName = "COM3", [int]$BaudRate = 115200 )这样交接的时候附一句"改这两行"就够了,不用通读代码。
6.2 把调试过程变成可复用的文档
我踩过最亏的一次坑是:某个设备的启动日志里有一行关键的版本信息,当时看到了但没存,三个月后设备出问题需要确认版本,只能把设备停了重启再抓一次,而那次是在生产时段,代价不小。
从那以后我给自己定了个规矩:凡是第一次接触的设备,接上串口的第一件事就是完整录一份启动日志,存到项目文档里,文件名带上设备型号和日期。这份日志后面能省掉很多次"再来一遍"。
文档里我一般会固定写四块:设备的串口参数、物理接线方式、常用命令清单、历史异常记录。前两块给新人看,后两块给自己看。特别是历史异常记录,写清楚"什么时候出现过什么现象、最后是什么原因",下次遇到相似症状可以直接翻。
6.3 一点个人体会
串口调试这件事,工具变化很快,但底层要搞清楚的永远是那几样:线序对不对、参数配没配对、数据到底有没有流过来。我这些年换过不少工具,界面从黑白字符变成带标签页的窗口,但每次卡住的时候,最后定位问题的还是那套最笨的流程——自环测一下、换个参数试一下、抓一段原始数据看一眼。
新手最容易犯的错是跳过验证直接怀疑硬件。实际上串口硬件本身很结实,出问题的概率远低于参数配错和驱动没装好。所以我的建议是:把排查顺序固定下来,从最便宜的动作开始,一步一步排除,别一上来就拆线换设备。
另外提醒一句,Win7 这类老系统的机器,最好单独留一台做串口调试,不要和日常办公混用。装了一堆驱动和工具之后,系统状态会变得很难复现,一旦出问题,换台干净机器重来往往比在原机上折腾更快。