51单片机接收多字节数据 串口通信

2025-03-10 23:26:53
推荐回答(4个)
回答1:

按发送是四个字节一起出去的,...。
----------------------
它们不是“一起”出去的。
实际上,串行口是按照波特率,把一位一位的二进数,顺序送出去的。

51的接收器,也是按照波特率,一位一位的收。
等到收齐了8个位(如55H),就送到SBUF,并且在RI置一;
再接着收,33H、...等等。

回答2:

我的理解是这样的:
发送时是4个字节依次出去的,他们之间有时间间隔的,间隔的时间与波特率有关,发送每个字节的时间(以1个起始位,1个停止位,无校验位为例)=波特率的倒数*10,最快不过10u秒的时间(1M的速度),对于速度快的单片机来说已经可以执行很多条语句了,每个字节都能收到的。

回答3:

可以看看串口通讯协议。按照预先设置的波特率,每发送一个字节前发送方都会询问接收端是否ready,在对方ready的情况下才串行发送(起始位,8位数据,停止位),然后再检测对端是否ready,周而复始。

接收端接收到数据后硬件置位RI,等待单片机取走数据(在单片机没有取走数据的时候,发送端查询是否ready是否回答NO)。取走数据后进入空闲等待状态

回答4:

单片机是一个字节一个字节的依次接收的