波特率baud实际上是bit per second,每秒多少位,这样我们可以计算出传送一位需要多长的时间t = 1/baud。
晶振有个频率Fosc,我们可以求出晶体振荡的周期T=1/Fosc。
观察串口通信的原理,我们可以看到,实际上有t = T*n(单周期的MCU),只要保证n在MCU内部能够分频出来,那么串口的波特率就是准确的。
51的串口没有独立的时钟源,而是靠定时器,那么这个n就对应了一个定时值。另外需要考虑的是,51不是单周期的,晶振12分频之后作为系统机器周期,可以看出t = T*12*n,转成,1/baud = 1/Fosc*12*n。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !