波特率是什么? 波特率如何达到概述:
简单来说,串行传输的波特率是每秒钟传输二进制数的位数。
离开无聊的文字说明,用波形和数字来看看波特率是什么。
说明:系统时钟50M (向串行端口提供时钟的时钟频率)、波特率115200。
基础知识:
因果时钟(向串行端口提供时钟的时钟频率(-50M时钟周期150106({RM{1}}over ) {RM { 50 *1} } {RM {0} } ^ {} { } 000系统时钟-要计数50m共1个,请执行150,10,6 {RM {4} }over { RM {5} {6} {7} RM {8} {9} { 10 } { 10 } { 10 } {6} } 501061 s波特率--1152001s传输二进制文件的位数115200位波特率115200s=8.68us50M系统时钟------波特率115200传输1位必须计数(RM { 50 *1} { {RM {0} } ^ {RM {6} }/{6 } )
串口传输格式
如下图所示,通常使用的串行传输格式为1位开始位8bit数据位1位停止位(无奇偶校验位)。
因此,传输1字节数据的串行端口必须传输10位数据。 上面计算的传输1位所需的时间为8.68us,传输1字节所需的时间为8.68*10=86.8us。
波特率
基础知识表明,在50M系统时钟—波特率为115200的条件下传输1位所需的计数为434。 那么,1字节)串行传输格式是1位开始位8bit数据位1位停止位)还是循环计数10次,434传输不是就完成了吗?
上图:照片描绘了1字节数据传输的图像。 重要的是图。什么时候去采样串口线上的数据呢?
参见上面的附图,Buad_Flag信号(信道2 )代表传输1比特的间隔,其中每遇到一个Buad_Flag=1的信号,数据就会被切换到一个数据线,因此两个Buad_Flag=1 重点都在图上!
图中的编号-分别为10位数据的采样点,采样点的提取数据为0101_0101(0x55 ),低位为高位。
到此为止,从下面再看一遍,就知道我们熟悉的波特率(115200/9600/…)是怎么来的了。
然后,想想为什么51单片机有专门用于串行端口的计时器。
想想为什么9600波特率和115200波特率不能对接了。 原理很简单。 我们每2秒发送一次数据。 你们每秒接收一次数据,怎么能接收成功?
波特率匹配:
由于收发波特率不一致,RX侧无法正常接收:
如果有错误,欢迎指导。