背景:手上有一个模块使用串口通信但是不知道其波特率,
如何确认它的波特率呢?
1、盲扫一遍
波特率有常用的配置9600、115200、230400、921600等,盲扫一遍就可以试出来。盲扫时需要观察接收到的数据及数据量。直接切换这几种波特率,观察窗口一次接收到的字节数,或者观察解析出来的数据。当波特率设低时,接收到的数据量是少的,需要加大波特率,反之减小。
2、示波器测量1bit时间
示波器接TXD,测量最小长度波形时间(对应1bit长度),再转换成波特率,转换公式:
P
a
u
d
=
1
T
Paud\text{=}\frac{1}{T}
Paud=T1,
P
a
u
d
Paud
Paud表示串口波特率,
T
T
T表示1bit对应的时长。
图1里1bit时长是T=1.08us,表示传输一位的时间是1.08us,转换成波特率(每秒传送的比特数)
P
a
u
d
=
1
T
=
1
1.08
e
−
6
s
≈
925,925.925
Paud\text{=}\frac{1}{T}=\frac{1}{1.08{{e}^{-6}}s}\approx \text{925,925}\text{.925}
Paud=T1=1.08e−6s1≈925,925.925,考虑到时钟和测试误差,其附近的921600波特率就是该波形的真实波特率。
图1 示波器抓取的921600波特率的串口TXD波形
3、逻辑分析仪确认
同理使用逻辑分析仪测量1bit的时间是1us(采样率低导致精度不够),也可以用来估计波特率。
图2 逻辑分析仪抓取的921600波特率的串口TXD波形
本文介绍了三种确认串口波特率的方法:1) 盲扫常用波特率并观察接收数据;2) 使用示波器测量1bit时间并转换为波特率;3) 通过逻辑分析仪进行测量。通过这些方法,可以准确地确定串口的波特率。
3万+

被折叠的 条评论
为什么被折叠?



