51单片机串口通信接收的过程的疑问

第一点,接收数据时,单片机是在执行另外的程序,并不是一直在等待接收数据的到来,在收到一字节数据后会产生中断来通知单片机,是这样吗?

第二点,假如接收了一个字节数据后,单片机去执行中断程序,而中断程序可能执行时间比较长,这时候发送端又发送来一字节,或者两字节数据,而这时单片机在执行另外的程序,会不会把原先的数据覆盖了,导致数据丢失。

一点:1单片机在执行程序,若有串口中断来,去执行中断(这种接收数据比较常用)
2 如果你不是中断接收数据,是查询接收数据,单片机执行到等待点(除非有中断,去执行中断),不不执行其他了,等待执行点结束,才能去执行其他的,一般都不常用
第二点:
1串口中断没有执行完,是无法进行下个串口中断的,这时新发送的数据无法接收的,只能等本次中断结束,才能下次接收,当然如果发送数据时间小于接收处理时间,数据是接收不到的,一般都是发送时间间隔要大于接收处理时间,即使有些软件的缓冲区可以存储数据,但有新的输出传来,缓冲区被刷新了,而上次接收还没完成完,这次发来数据就会丢失,
2 即使你中断执行很长,但发送数据时间远大于这个时间,数据不会丢失的。数据在缓冲区中SBUF中存储着。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-13
第一,接收数据时如果有高级别中断产生,那么将响应该中断,接收数据将失败,数据丢失。
第二、响应中断后,没有退出中断前,如果继续有数据传送过来,那么后传送过来的数据将丢失。本回答被提问者采纳
相似回答