← 返回软件与工具库

PulseView:开源逻辑分析仪软件,不绑硬件厂商

最后更新 2026-09-02
⏱ 约 9 分钟 🟡 涉接线/强电
PulseView sigrok PulseView / 开源逻辑分析仪软件 逻辑分析与测量 免费

用来看引脚上真实发生了什么的开源工具,不绑硬件厂商、三平台都有;代价是你得另配逻辑分析仪硬件,而且官方没有正式版本号可以固定下来。

授权
GPL-3.0 开源 底层库 libsigrok 同为 GPL-3.0;两者均未发布正式版本号,官方以快照 / 持续构建形式提供。
平台
Windows / macOS / Linux
协议
UART、I2C、SPI
官网
http://sigrok.org/wiki/PulseView
源码
https://github.com/sigrokproject/pulseview
适合
  • · 查「代码逻辑没问题但设备就是不工作」这类问题,需要看引脚上的真实波形
  • · 不想被单一硬件厂商的软件绑住,或者手上的采集设备以后会换
不适合
  • · 手上只有软件的人——它只是软件,得另配逻辑分析仪硬件才能抓到信号
  • · 要求工具链可复现、必须锁定版本号的团队——官方以快照形式提供,没有正式版本可锁
文件名
PulseView(官方以快照 / 持续构建形式提供)
版本
官方未发布正式版本号
SHA256
待补(尚未实际核对,不填占位值)
核对于
2026-09-02

本站不托管安装包,上方为官方渠道直链。下载后请自行核对 SHA256,与上表不一致说明文件被改动过。

PulseView 是 sigrok 项目的图形前端,用来采集和查看逻辑分析仪、示波器上的信号,许可证是 GPL-3.0。仓库在 github.com/sigrokproject/pulseview,项目页在 sigrok.org/wiki/PulseView。它底下那层干活的库叫 libsigrok,同属 sigrok 项目,同样是 GPL-3.0。

它在测量软件这个品类里的位置比较特别,但有一个前提得先讲清楚,否则你会白折腾一晚上。

先说最容易白折腾的一件事:它不含硬件

搜到就下载的人,装完会发现连不上任何东西。

PulseView 只是软件。 逻辑分析仪是一台实实在在的采集设备,它负责把引脚上的电平按固定采样率记录下来;PulseView 负责把这些记录画出来、解出来。电脑本身没有这个采集能力,所以你必须另外配一台逻辑分析仪硬件,才能真的抓到信号。

具体支持哪些型号的设备,请以官方 sigrok 项目的文档为准——本页不列型号。硬件支持列表本身是会变的,不同设备在不同构建下的状态也不一样,抄一份没实核过的清单出来,只会让你照着买错东西。

这一点不是 PulseView 的缺陷,所有逻辑分析软件都一样。真正的区别在后面几节。

逻辑分析仪到底解决什么问题:看线上真实发生了什么

这一节值得多花点篇幅,因为它是逻辑分析仪相对于其他所有调试手段的根本差别。

你平时调嵌入式,主要靠两样东西:串口打印,和调试器单步。

这两样有个共同点——它们看到的都是「你的程序认为发生了什么」。printf 打出一句「写入成功」,意思只是那个函数返回了 0;单步走到某一行,意思只是 PC 指针到了那儿。它们描述的是程序内部的状态。

逻辑分析仪不一样。它夹在引脚上,记录的是引脚上实际发生了什么——电平什么时候翻转、翻转得快不快、时钟和数据之间差了多少时间。

大多数时候这两者是一致的,那你确实用不上它。

而它们不一致的时候,恰恰就是最难查的那一类 bug。 举几个典型:

  • 时序不对。 你照着手册配了参数,但实际发出去的时钟和手册要求差一截,从机不认。
  • 电平不够。 上拉电阻选大了,上升沿被拖成一条斜线,接收端在采样点上读到的仍然是低。
  • 上拉缺失。 I2C 忘了挂上拉电阻,线上根本拉不高,可你的代码一路返回成功。
  • 从机根本没响应。 你以为在通信,其实是主机自说自话发了一串,对面一个字节都没回。

这几种情况有一个共同表现:代码逻辑看起来完全没问题,但设备就是不工作。你在代码里怎么读都读不出错,因为错根本不在代码里。

这类问题最后都得靠看波形收场。 这就是为什么做硬件的工位上迟早都会摆一台逻辑分析仪——它不是让你调得更快,它是让你在某些时刻还能往下查。

它和 SerialPlot 不是一回事

这两个容易混,因为都是「把信号画成图」。但画的东西完全不同:

  • SerialPlot 画的是你的程序主动从串口发出来的数值。 你在代码里把一个温度值打出去,它把这些值连成曲线。看的是程序算出来的量。
  • PulseView 抓的是引脚上的电平波形。 你不需要在代码里写任何东西,它在物理层上直接采。看的是线上真实发生的事。

所以用途也不一样:调参数、看某个量漂不漂、看曲线抖不抖,用 SerialPlot;查通信为什么不通、时序对不对、对面到底有没有回,用 PulseView。

还有一个更直接的判据:如果你怀疑的正是「串口本身通不通」,那就不能拿串口打印去查——工具和被查对象是同一个东西,它坏了你也看不见。这时候只能从外面看,也就是逻辑分析仪。

没有正式版本号这件事,得如实说

PulseView 官方没有发布过正式版本号,它以快照(snapshot)/ 持续构建的形式提供。底层的 libsigrok 也是一样,同样没有正式发布版本。

这件事分两面看,别一句「连版本号都没有肯定不靠谱」就否掉:

它不代表项目不活跃。 快照式发布在一些长期维护的开源项目里并不少见,意思是「主干一直在走,你随时可以取一份下来」,而不是「没人管了」。

但它确实意味着你没有一个稳定版本可以固定下来。 对个人调试,这不算事,取一份能跑就行。对团队就是另一回事了:如果你们要求工具链可复现——同一套工具、同一份操作文档、两年后新人还能装出一模一样的环境——快照式发布会让这件事变麻烦。你只能自己把某个时间点的构建归档下来、记清楚取得的日期,因为官方那边没有一个可以引用的版本号。

要不要紧,取决于你的团队有多在意可复现性。这个点值得在下载之前先想一想,而不是等出了问题再补。

不绑硬件厂商,这一点有实际价值

测量软件这个品类里,主流是硬件厂商自己出的软件。站内的 Kvaser CanKing 和 PCAN-View 就是典型:软件免费,但各自要求配自家的硬件。

这个模式本身没什么不好,厂商软件跟自家硬件配合得最顺、支持也最到位。但它有一个后果:你的软件选择被硬件绑死了。换一家硬件就得换一套软件,界面重学一遍,操作习惯重建一遍。

sigrok 是个开源项目,目标是支持多家厂商的设备。对你来说的实际意义是:换硬件的时候,你的软件和使用习惯可以留下来。 在硬件会换、人不会换的团队里,这件事的价值比听上去大。

它是 GPL-3.0 开源的,这在没有厂商支持承诺的语境下也有意义——真遇到问题,代码在那儿。

上手之前的几条常识

这几条不是 PulseView 特有的,是所有逻辑分析工作的公共前提。搞错了,你看到的波形本身就是假的。

采样率不足会漏掉窄脉冲。 逻辑分析仪是按固定采样率去「拍」电平的,两次采样之间发生的事,它完全不知道。如果一个毛刺比采样间隔还窄,波形上看起来就是干干净净的——不是没有毛刺,是没拍到。所以采样率要明显高于被测信号的速率:只想知道有没有翻转,倍数低一点也行;想看边沿形状、想抓窄脉冲,就得留出更大余量。这个坑的隐蔽之处在于,它不会报错,只会让你得出一个错误的结论。

协议解码是软件在电平序列上做的解析。 它不是硬件功能。硬件只负责把 0 和 1 按时间记下来,解码器是在这串已经采到的 0/1 上,按协议规则往回推出字节和帧。由此有一个直接推论:采样阶段丢掉的信息,解码阶段补不回来。 采样率不够,或者触发点选偏了漏掉了帧头,解出来的结果就会是错的,甚至根本解不出来。这种时候别怪解码器,回头看采集设置。

触发是用来抓偶发事件的。 一直采会很快把内存堆满,而你要找的问题可能几分钟才出一次。触发条件的作用是让它一直等着,等到你关心的那个条件出现(某个边沿、某种电平组合)才开始记录。查「偶尔失败一次」这类问题,会不会用触发,决定了你是十分钟解决还是耗一下午。

地线必须共。 这条最基础,也最常被忽略。电平是相对参考地测出来的,逻辑分析仪的地线不接到被测板的地上,它测到的数值就没有参照——波形要么全乱,要么全是假的。接线时的顺序是先接地线,再接信号线。

别只夹一根线。 通信是双向的,很多时候你得同时看两根甚至更多线才能判断问题在哪。只夹数据线,看到「数据没动」,你分不清是发送端没发,还是时钟压根没走。把相关的几根一起抓下来,对齐着看,才能定位到是哪一段出的问题。

UART 这类协议的位定时和电平约定,可以对照站内的原理篇看一遍,波形上每一段对应什么,会清楚很多。

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

延伸阅读

同样是不绑硬件厂商的开源工具,见 SavvyCAN; 绑自家硬件的对照组是 Kvaser CanKing 与 PCAN-View。 如果你要画的是程序输出的数值曲线而不是引脚电平,那该用 SerialPlot; 串口本身的收发调试见 UartAssist 和串口调试工具。 UART 的位定时与电平约定见 UART 串口通信,其余同类见软件与工具库。

同类可替代
内容有错、看不懂、或想看下一期?告诉我们 →

本文为公开资料的学习整理,非亲测。涉接线/花钱/合规的步骤请结合实物与官方最新资料验证,风险自负。见免责声明。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。