学过51好久了,好多知识都忘记了,比如在配置串口时,如何计算波特率,串口的几种工作方式,顺便了解到定时器的几种工作方式。
最大的感受是:学什么东西,在一开始的时候不可能什么都懂的,等你隔上一段时间,当然这段时间里面你应该仍然提高,而不是停滞不前,回过头再看看你当时学的东西,会有种大彻大悟的感受,原来也就是那么回事,还记得当初学习51单片机的时候,什么寄存器配置都不懂,只是跟着视频把代码抄下来,根本就不求甚解,只是知道,这样做就行了,直到调试nRF24L01的时候,才明白寄存器配置具体是怎么回事。
后来接触飞思卡尔,430这类单片机时又巩固了下。
所以呢,不管学什么,第一遍不懂没关系,关键不能放弃,当你到达另一个高度,再回来看看,看书已不是煎熬,而是享受知识了。
先来进行串口的配置,为了保证数据的稳定数传,先配置为 9600bps ,
这里先来详细解释下波特率的概念:
波特率:每秒钟传输二进制代码的位数;
9600bps,意思就是每秒钟传送9600个比特(bit),因为算上1个起始位,1个停止位,8个数据位,所以完整完成一个字节(byte)的传输需要10位,也就是每秒钟960个字节,1s=1000ms,所以传输一个字节的时间为:
1000/9600=0.1042s=1.042ms
显然我们这里选第2种工作方式。
然后采用定时器,作为波特率的发生器,这里给出计算公式:
根据计算,可以算出当 TH1 = TL1 = 0xFD;
void Uart_Init(void)
{
TMOD = 0x20;
SCON = 0x50;