串口之计算波特率

本节接着承接上一节,在我们使用异步通信时,需保证计算机与单片机的波特率的相同,这样才能防止数据传输时出错,本节就是围绕这个问题展开的。

一、工作原理

依然是这张图,注意看TH1和TL1,熟悉定时器的肯定认识它俩,但是在串口中它俩的身份就有所转变了。在串口中被称为波特率发生器

虽然在串口中它换了一个名字,但功能却丝毫未改。如果此时我们想将单片机的波特率调成9600,那么本质上就是每1/9600s接收或发送一个数据(一个2进制位),那这时候,我们就可以考虑给T1设置初值。然后在每次定时时间到的时候溢出,就实现了波特率发生器的功能。

注意:这里的定时器之能使用T1,且工作方式只能是方式二、串口默认的波特率发生器为T1,所以不能用T0。而方式二具有自动清溢出的功能,实现了多个数据的发送。值得一提的是:在编程时,我们不用打T1的中断标志位,也不用考虑如何清除溢出标志位,这些串口自己便会完成。

二、如何设置初值

上图便是我

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值