上周用几天时间把单片机与计算机串口通信玩了一下,现在颇有感悟,仿佛自己又打开了一扇硬件与软件协同设计的大门,在这里对我几天工作的一个小总结,希望以后能再接再厉,研发出好的产品。
1.首先,解决的第一个问题就是计算机与单片机串口通信的数据速率问题即串口通信波特率,这就好比一个豆蔻年华的小姑娘跟她的奶奶讲学校里发生的事情一样,一个生动可爱侃侃而谈,一个听得稀里糊涂却只能点头微笑,所以一个准确的通信速率是保证数据有效传输的关键。对于计算机,波特率的问题只需要控制上位机程序的波特率函数使之与单片机的传输速率一致就可以了;而对于单片机来说,波特率要根据单片机的外部晶振源、内部定时器的设定和内部寄存器的设置等共同决定。当然,计算机波特率的设置也是相当复杂的一个过程,但对于只在应用层编写软件的我们就不关心那么细致了,在这里只对单片机的波特率加以详细说明。
对于51单片就而言,方式1串口通信方式的波特率计算公式为:
而T1的溢出率是指单片机T1定时器溢出的频率也就是(1/T1计时器周期),那么上面的公式便可以拓展为:
</