江协科技STM32学习-1 购买24Mhz采样逻辑分析仪
前言:
本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。
引用:
STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili
逻辑分析仪的简单使用介绍(附带i2c、串口、spi数据分析)_逻辑分析仪使用方法-CSDN博客
SaleaeLogic 16 逻辑分析仪的安装及使用【对 I2C、SPI、串口的信号进行测量】_saleae logic-CSDN博客
六叶树 Saleae Logic 8通道 逻辑分析仪软件使用 详细教程_logic逻辑分析仪软件-CSDN博客
使用 PluseView 作为逻辑分析仪采集器的上位机
saleae逻辑分析仪(PulseView)安装使用_pulseview下载-CSDN博客
逻辑分析仪软件PulseView 下载链接及使用,zadig更改USB端口名称_pulseview下载-CSDN博客
使用Pulseview软件辅助verilog数字设计仿真协议解码_pulseview教程-CSDN博客
正文:
0. 概述
今天 (2024/05/31)在淘宝上购买了基础入门款的 24MHz 8通道采样的逻辑分析仪,在学习下江协科技的STM32开发教程的时候会用逻辑分析仪来抓 I2C,SPI,UART 口通信的通信协议报文。在淘宝上购买的这种 19块钱的8通道逻辑分析仪已经能够满足入门级的开发需求,需要感谢国产电子技术的发展才有这么廉价好用的入门级逻辑分析仪可以使用。
1. 安装驱动程序
淘宝购买产品发货清单里有如下配件,一个24MHz逻辑分析仪主体,一个USB连接线,8根杜邦线。

在购买逻辑分析仪的淘宝店铺里,在商品详情页面会提供对应的使用说明文档和驱动程序。例如,我购买的这个24MHz逻辑分析仪的淘宝商家在商品页面详情里提供了百度网盘下载链接,将这些资料下载下来。(实际上,淘宝上卖的这种十几块钱的24MHz逻辑分析仪使用的芯片方案都是同一家,驱动和使用说明资料都是一样的。)

从商家提供的下载链接里将资料压缩包下载下来,解压之后在解压目录里就有逻辑分析仪的USB驱动程序,点击安装驱动程序。

我购买24Mhz逻辑分析仪的淘宝商家提供下载链接里有3个 Saleae Logic USB 驱动安装程序包。
- Logic Setup 1.1.16 (32-bit).exe, 对应上位机的软件版本是 Saleae Logic -1.1.16,是32位系统的安装包。
- Logic Setup 1.1.16 (64-bit).exe, 对应上位机的软件版本是 Saleae Logic -1.1.16,是64位系统的安装包。
- Logic Setup 1.2.17.exe,对应上位机的软件版本是 Saleae Logic -1.2.17,是64位系统的安装包。
直接安装最新的 这个 “Logic Setup 1.2.17.exe” 逻辑分析仪USB驱动程序就可以,因为驱动程序一般是向后兼容的,双击运行安装逻辑分析仪的驱动程序。
将逻辑分析仪插上USB连接线,并将USB连接线接在电脑USB接口,在上一步驱动程序安装成功之后,此时电脑就能识别到逻辑分析仪。键盘按下“Win + R”键,在运行窗口里输入 "devmgmt.msc" ,点击“确定”,就可以打开Windows设备管理器。

可以看到,在Windows操作系统的设备管理器里USB设备下面已经成功识别到的逻辑分析设备。

2. 安装上位机软件
我这里使用 Saleae Logic 上位机软件来配合分析逻辑分析仪采样到的数据。到Saleae公司的网站上去下载 Saleae Logic 上位机软件。

网页里提供了下载链接,我直接下载提供的最新的Loigc上位机软件版本,经过测试是可以使用的。
https://downloads.saleae.com/logic2/Logic-2.4.14-windows-x64.exe

Saleae Loigc 上位机软件安装包下载下来之后,点击安装Loigc上位机,一直下一步,直到安装成功。安装成功之后再Windows系统桌面上的图标,双击就可以打开 Saleae Logic 软件。

Saleae Loigc 上位机软件界面如下,我安装的是在此时(2024/05/31)最新的Saleae Loigc-2.4.14 版本,其实,各个版本之间的差异不大功能按钮都是一样的只是图形界面布局有所改变。
就以 "Saleae Loigc-2.4.14" 为例,在界面的左下角会自动连接插到电脑USB接口上的逻辑分析仪设备(前提是上一步的驱动程序已经安装成功)。界面右侧面板是我们需要使用配置项,简单介绍一下:
- 采样频率:根据通信原理奈奎斯特采样定律,采样频率至少应该是被采样信号频率的两倍。
看其博主文章介绍,如果要观察通信协议波形采样频率最好是被测试信号频率的5~10倍,例如,需要观察I2C 100Kbps的通信协议波形,采样频率=100KHz*10=1M,采样频率需要再1M以上,我这里直接选择采样频率为2M就没有问题。当然直接保持默认的24M采样频率肯定是没有问题。- 采样时间:就是要采集多长时间的数据,例如,需要采集5秒钟的通信协议波形,或者采样10秒钟的通信协议波形。
- 采样触发条件:开始采样的触发条件,可以是上升沿触发,下降沿触发,也可以上双边沿触发,当触发条件满足时逻辑分析仪就开始采样被测信号数据并上传到上位机进行解码分析。
例如,用该逻辑分析仪观察UART通信数据,因为UART空闲时是高电平,起始位是一个第低平,所以采集UART通信数据就可以设置采样触发条件为“下降沿”。

3. 简单上手使用
简单上手使用了一下24M 8通道逻辑分析仪来采样 UART 通信协议的串口输出波形,UART 波特率是 115200kbps=115.2KHz,我们设置逻辑分析仪的采样频率为被测试信号的10倍,115.2KHz*10 = 1.15M,所以设置Sealea Logic 通道的采样率为 2M 就可以条件。

- 将逻辑分析仪的 “GND” 地线接到开发板的UART串口的“GND”。
- 将逻辑分析仪的 “CH1”引脚接到开发板的UART串口的“Tx”。
- 设置Sealea Logic 上位机的 CH0 (Logic上位机上的CH0~7,对应逻辑分析仪采集器便签上的CH1~CH8)的采样频率为2M,采样时间设置为5秒(采样5秒的串口输出信号)。
- 设置采样触发条件为“下降沿”触发,因为UART空闲时是高电平,起始位是一个第低平,所以采集UART通信数据就可以设置采样触发条件为“下降沿”。
点击开始,进行采样,逻辑分析采集器根据设定时间采样了5秒钟的Tx输出信号采样数据之后就停止采样,此时我们可以在Sealea Logic 上位机上看到采样出来的波形。

Sealea Logic 支持多种通信协议数据格式的解析,例如,I2C,SPI,UART,I2S/PCM,等等。点击Sealea Logic界面上上边栏菜单的 "IF" 图标,在下拉框里选择通信协议解析格式,我这里抓的是UART串口所以选择 "Asynchronse Serial (uart)”,然后选择UART的波特率,停止位,起始位,校验位的配置,点击确定,就可以对抓到的UART通信数据进行解析为16进制数据了。

根据开发板的UART配置选择波特率

最终结果,可以看到Sealea Logic 上位机已经正确的解析除了逻辑分析仪采集器采集到的 UART 口 Tx 输出数据,并且解析出来的输出内容符合预期。
4. 总结
本文记录了24M 8通道逻辑分析仪的简单使用,包括安装逻辑分析仪采集器的驱动程序,安装逻辑分析仪的Sealea Logic 上位机软件,并且简单上手使用逻辑分析采集器采集并且查看了一下UART串口Tx输出的实际波形数据,并用Logic支持的UART协议分析功能解析除了抓到数据的16进制格式。
5. 结束。
本文至此结束。
相关文章:
江协科技STM32学习-1 购买24Mhz采样逻辑分析仪
前言: 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲…...
支付系统-业务账单
target:离开柬埔寨倒计时-210day 前言 最近不知道该写什么了,很多东西要写起来非常耗时间,写作是真的不容易呀 我们的支付系统账单有两大类,一个是业务账单还有一个就是资金记录,都是引发资金流后的资金变动表现&…...
AI引领天文新篇章:中科院发现107例中性碳吸收线,揭示宇宙深邃奥秘
在浩渺无垠的宇宙中,探索未知的天文现象一直是科学家们不懈的追求。近日,中科院上海天文台的研究团队在《天文物理杂志》(MNRAS)上发布了重要研究成果:利用人工智能技术,成功探测到了107例中性碳吸收线&…...
python 删除pdf 空白页
环境 python 3.10 PyPDF2 3.0.1 安装 pip install PyPDF2流程 将空白页和内容页读取出来,看看内部结构有什么不同以此为依据,遍历整个PDF 文件,标记处有内容的页面,写入到另外一个PDF文件。 python 代码 # 每一个页都是一个…...
flutter as连接网易模拟器
网易模拟器下载 Mac 使用MuMu模拟器调试 Flutter开发 Android Studio 安装第三方模拟器—网易MuMu Mac 安卓Studio使用外部模拟器 Mac电脑:Android Studio 连接 MUMU 网易模拟器 Mac 上 Android Studio 链接网易 MuMu 模拟器调试 在 .zshrc 中设置 adb 二进制文…...
fpga控制dsp6657上电启动配置
1 Verilog代码 dspboot_config.v timescale 1ns / 1ps //dsp上电启动配置 module dspboot_config (///时钟和复位input SYS_CLK_50MHz,input SYS_RST_n,//DSP启动配置output DSP_POR,output DSP_RESETFULL,output DSP_RESET,inout [12:…...
Tomcat启动闪退问题解决方法
Tomcat是一个广泛使用的开源Web服务器和Servlet容器。它的稳定性和灵活性使其在Java Web开发领域受到广泛关注。然而,在实际使用过程中,我们有时会遇到Tomcat启动后立即关闭的问题,这种现象通常被称为"闪退"。下面我将针对这个问题…...
【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型
文章目录 一、背景二、方法2.1 提升点2.2 训练样本 三、效果3.1 整体效果对比3.2 模型对于 zero-shot 形式的指令的结果生成能力3.3 模型对于 zero-shot 多语言的能力3.4 限制 四、训练4.1 数据4.2 超参 五、评测六、代码 论文:Improved Baselines with Visual Inst…...
文件编码概念
文件的读取 open()函数: 打开一个已存在的文件,或者创建一个新文件 open(name,mode,encoding) name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径) mode:设置打开文件的模式(访问模式)&am…...
uni-app(优医咨询)项目实战 - 第7天
学习目标: 能够基于 WebSocket 完成问诊全流程 能够使用 uniCloud 云存储上传文件 能够完成查看电子处方的功能 能够完成医生评价的功能 一、问诊室 以对话聊天的方式向医生介绍病情并获取诊断方案,聊天的内容支持文字和图片两种形式。 首先新建一…...
推荐系统学习 二
双塔模型的结构 用户的特征,我们知道用户ID还能从用户填写的资料和用户行为中获取很多特征,包括离散特征和连续特征。所有这些特征不能直接输入神经网络,而是要先做一些处理,比如用embedding层把用户ID映射到一个向量 跟之前我们…...
Vue——组件数据传递与props校验
文章目录 前言组件数据传递的几种类型简单字符串类型数据专递其他类型数据(数字、数组、对象)传递注意事项 数据传递值校验限定数据类型 type给定默认值 default指定必选项 required 前言 组件与组件之间并不是完全独立的,他们之间可以进行一些数据的传递操作。传递…...
Java 基础面试300题 (261-290)
Java 基础面试300题 (261-290) 261.CompletableFuture.runAsync和CompletableFuture.supplyAsync方法有什么区别? 这两个方法都可用于异步运行代码。但两者之间有一些区别如下 : runAsync不返回结果,返回的是一个Com…...
音频信号分析与实践
音频信号分析与实践课程,方便理解音频信号原理和过程 1.音频信号采集与播放 两种采样模式和标准的采样流程 人说话的声音一般在2kHz一下: 采样频率的影响:采样率要大于等于信号特征频率的2倍;一般保证信号完整,需要使用10倍以上的…...
程序媛:拽姐
更多精彩内容在公众号。 最近都在玩梗图,我也来玩下拽姐的梗图。来说说拽姐做为程序媛的痛。 程序媛的痛不在于996,而在于无休止的攻关。拽姐刚入职听领导说攻关不多,一年也就一次,拽姐心中暗喜,觉得来对了地方。结果…...
前端面试题日常练-day54 【面试题】
题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 1. 在PHP中,以下哪个函数用于将一个字符串转换为日期时间对象? a) date() b) strtotime() c) datetime() d) time() 2. PHP中的超全局变量$_COOKIE用于存储什么类型的数据&a…...
054、Python 函数的概念以及定义
编程大师Martin Fowler曾说过:“代码有很多种坏味道,重复是最坏的一种。” 那么遇到重复的代码,如何做?答案就是:函数。 函数就是把重复的代码封装在一起,然后通过调用该函数从而实现在不同地方运行同样的…...
今时今日蜘蛛池还有用吗?
最近不知道哪里又开始刮起“蜘蛛池”这个风气了,售卖、购买蜘蛛池的行为又开始在新手站长圈里开始蔓延和流行了起来,乍一看到“蜘蛛池”这个词给明月的感受就是陌生,要经过回忆才能想起来一些残存的记忆,所谓的蜘蛛池说白了就是利…...
【一步一步了解Java系列】:重磅多态
看到这句话的时候证明:此刻你我都在努力 加油陌生人 个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者:小闭…...
运维工具 - SFTP 和 FTP 的区别?
SFTP 和 FTP 的区别有三点 连接方式 SFTP 是在客户端和服务器之间通过 SSH 协议建立的安全连接来传输文件,而 FTP 则是 TCP 端口 21 上的控制连接建立连接。 安全性 SFTP 使用加密传输认证信息来传输数据,因此 SFTP 相对于 FTP 更安全的。 效率 SF…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
