以串口1控制寄存器SCON为例,串口2控制寄存器S2CON同理。
SCON寄存器设置波特率的方法有四种,如下图:
SCON寄存器的BIT6-7位设置了4种方式。
我们常用的格式是数据位8位,波特率需要根据实际情况进行调整,所以是可变的,所以需要SCON寄存器的BIT6=1,BIT7=0。
另外,串口一般都是有发有收,所以也需要使能接收。
所以SCON寄存器的BIT4也需要置1。
关于寄存器的其他描述,https://wenku.baidu.com/view/91a925de31126edb6e1a1088.html 讲解的很清楚。
下面来说一下可变的波特率是怎么计算出来的。
需要先算出:溢出率,溢出率分为 定时器1的溢出率 和 BRT独立波特率发生器的溢出率。
公式如上:用到的参数有T1x12 、BRT