本节接着承接上一节,在我们使用异步通信时,需保证计算机与单片机的波特率的相同,这样才能防止数据传输时出错,本节就是围绕这个问题展开的。
一、工作原理
依然是这张图,注意看TH1和TL1,熟悉定时器的肯定认识它俩,但是在串口中它俩的身份就有所转变了。在串口中被称为波特率发生器。
虽然在串口中它换了一个名字,但功能却丝毫未改。如果此时我们想将单片机的波特率调成9600,那么本质上就是每1/9600s接收或发送一个数据(一个2进制位),那这时候,我们就可以考虑给T1设置初值。然后在每次定时时间到的时候溢出,就实现了波特率发生器的功能。
注意:这里的定时器之能使用T1,且工作方式只能是方式二、串口默认的波特率发生器为T1,所以不能用T0。而方式二具有自动清溢出的功能,实现了多个数据的发送。值得一提的是:在编程时,我们不用打T1的中断标志位,也不用考虑如何清除溢出标志位,这些串口自己便会完成。
二、如何设置初值
上图便是我