串行通信波特率如何确定?

如题所述

在串行通信中,收发双方对发送或接收数据的速率要有约定。
通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。
串行口的四种工作方式对应三种波特率。
由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。
方式0的波特率=fosc/12
方式2的波特率=(2SMOD/64)·fosc
方式1的波特率=(2SMOD/32)·(T1溢出率)
方式3的波特率=(2SMOD/32)·(T1溢出率)
当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。
这时溢出率取决于TH1中的计数值。
T1溢出率=fosc/{12×[256——(TH1)]}
在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。
所以,选用的波特率也相对固定。
常用的串行口波特率以及各参数的关系如表所示。
温馨提示:答案为网友推荐,仅供参考
相似回答