用逻辑分析仪分析Usart波形

news/2025/3/22 9:14:34/

USART的波形抓取最简单,帧头帧尾只需要电平上升下降沿就可以了,不需要自己定义,也没有ID位,逻辑分析仪可以直接抓取发送的数据:

口配置:9600bps,8数据位,无校验,1个停止位,从低位开始传输(LSB),数据为0xAA:

2.串口配置:19200bps,8数据位,奇校验,1个停止位,从低位开始传输(LSB),数据为0xAA、0xBA      图中的“Right”表示校验正确。

串口的参数一般有:
1.波特率,数据传输速率,单位bps(bits per second),即每秒传输的位数,常见的波特率有9600bps、19200bps、115200bps等;如果波特率为115200bps,则传输一个bit的时间是1/115200s≈8.68us;
2.空闲位,当总线处于空闲状态时信号线的状态为‘1’即高电平,表示当前线路上没有数据传输;
3.起始位,总线空闲时为高电平,所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平’0’,来表示传输字符的开始;
4.数据位,起始位之后,跟着要传输的数据,数据可以是5、6、7、8、9等位,构成一个字符,一般是8位;一般先发送最低位,最后发送最高位(LSB),使用低电平表示‘0’高电平表示‘1’完成数据位的传输;
5.校验位,校验数据传送的正确性,分为以下几种方式:
①无校验(no parity),即不使用校验位;
②奇校验(odd parity),如果数据位中“1”的数目是偶数,则校验位为“1”,如果“1”的数目是奇数,校验位为“0”;
③偶校验(even parity),如果数据为中“1”的数目是偶数,则校验位为“0”,如果为奇数,校验位为“1”;
④ Mark校验,校验位始终为1;
⑤Space校验,校验位始终为0;
6.停止位,表示数据传输结束,高电平,可为1、1.5或2位,
7.传输方向,即数据是从高位(MSB)开始传输,还是从低位(LSB)开始传输;

usart串口的协议波形:

下面进行了串口TX发送数据0x55的实验:

看下图,绿色是起始位,红色是截止位,中间是数据位,自动解析出来了数据位是0x55 :


http://www.ppmy.cn/news/1581104.html

相关文章

6.5840 Lab 3: Raft

论文很重要 raft-zh_cn/raft-zh_cn.md at master maemual/raft-zh_cn GitHub Part 3A: leader election (moderate) 十次test都过了 实现 Raft 的领导者选举和心跳机制(AppendEntries RPC,无日志条目)。第 3A 部分的目标是实现以下功能&am…

使用 Apktool 反编译、修改和重新打包 APK

使用 Apktool 反编译、修改和重新打包 APK 在 Android 逆向工程和应用修改过程中,apktool 是一个强大的工具,它允许我们解包 APK 文件、修改资源文件或代码,并重新打包成可安装的 APK 文件。本文将介绍如何使用 apktool 进行 APK 反编译、修…

OpenCV vs MediaPipe:哪种方案更适合实时手势识别?

引言 手势识别是计算机视觉的重要应用,在人机交互(HCI)、增强现实(AR)、虚拟现实(VR)、智能家居控制、游戏等领域有广泛的应用。实现实时手势识别的技术方案主要有基于传统计算机视觉的方法&am…

微信 MMTLS 协议详解(五):加密实现

常用的解密算法,对称非对称 加密,密钥协商, 带消息认证的加解密 #生成RSA 密钥对 void GenerateRsaKeypair(std::string& public_key,std::string& private_key) {RSA* rsa RSA_new();BIGNUM* bn BN_new();// 生成 RSA 密钥对BN_s…

期刊分区表2025年名单下载(经济学、管理学)

2025年期刊分区表包括SCIE、SSCI、A&HCI、ESCI和OAJ,共设置了包括自然科学、社会科学和人文科学在内的21个大类 本次分享的是期刊分区表2025年名单经济学类、管理学类,一共7631025条 一、数据介绍 数据名称:期刊分区表2025年名单 数据…

一些硬件知识【2025/3/1】

隔离电源的内部构造: 里面的电源驱动芯片是VPS8702,价格大概在1块钱左右。 可以看到其特点也正符合B0505S这种小型的隔离电源模块。其内部是一个全桥的拓扑,可以驱动外置变压器从而达到将外部输入电源隔离输出的目的。并且他集成了过流检测保…

C#里使用libxl来合并单元格的例子

操作EXCEL的文件格式是常用的功能, 通过不同的单元格的合并,可以生成不同的表格。 如下图所示: 采用libxl来创建上面的EXCEL,使用下面的代码来实现: private void button8_Click(object sender, EventArgs e) {var …

GCC 预定义宏:解锁编译器的隐藏信息

GCC 预定义宏:解锁编译器的隐藏信息 在 GCC 编译器中,有许多内置的预定义宏,它们可以提供编译环境的信息,如文件名、行号、时间、版本等。这些宏在调试、日志记录、条件编译等场景中非常有用。本文将介绍常见的 GCC 预定义宏&…