串口
通信中,如果不需要校验位的话,一般格式是:1bit起始位+8bit数据位+1bit停止位。
现在A 和 B按照串口规定的波特率进行通信,假设是9600,且 A是发送,B是接受。
B采用9600的16倍时钟去采样。由于是异步通信,且时钟也不是完全精确的。B的接收可能存在偏移。
请问这种偏移是否是累加的?即A连续发送,上一轮的停止位刚发送完,立刻发送下一轮的起始位。在这样反复发送了非常多轮后,累计起来的误差是否会导致B接收数据错误?
如果B在接收数据时,到接收停止位的时候,并不完全持续一个停止位的时间长度,而是提前就进入等待下一轮起始位的状态,这样做符合通用的做法吗?
说的有道理。所以uart协议中还存在1.5个停止位和2个停止位的模式
一周热门 更多>