看了51单片机的串口通信,有一些疑问??

比如,电脑向51单片机发送数据,有n个数据,电脑是一帧一帧发的,可是串口接口没有像iic总线一样的应答信号,如果51单片机接受到一帧数据,中断去处理数据时,第二帧数据又到... 比如,电脑向51单片机发送数据,有n个数据,电脑是一帧一帧发的,可是串口接口没有像iic总线一样的应答信号,如果51单片机接受到一帧数据,中断去处理数据时,第二帧数据又到了,而中断还没完成,那么这帧数据不是要丢失了??
不知道我理解对没有,求教!
展开
 我来答
高山入云
2011-03-03 · TA获得超过1072个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:153万
展开全部
你讲得有道理。但实际应用中一般不会出现这个情况,因为发送和接收都是"有约在先",因为接收方知己知彼,会考虑到这个因素,也知道帧与帧之间的最小间隔。
通常数据都是一帧一帧地发送的,接收方收到数据后并存于事先开辟的缓冲空间。
当收到标志性的数据后即时转移这些数据,并腾出事先开辟的缓冲空间接收后面的数据。程序在处理数据的同时,串口依然在接收,将接收的数据再次存于已经腾出的缓冲空间。
所以在串口中断服务中,不能有太多的程序去处理,因为处理这数据时,串口被中断占用就不能接收数据。通常将需要处理的数据放到主程序中,因为前面说了,主程序和串口接收是可以同时运行的。
如果在串口中断服务中,程序较多,占去太多时间,正如你说的,那就会丢帧而出错,这是不允许的。
做而论道
高能答主

2011-03-04 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
电脑是一帧一帧发的,.....
--------------
楼主说的太快了,是一位一位发的。发送一帧,至少有十位。
按照波特率计算一下,就可以知道,发送过来一帧,时间是相当长的。
只要单片机程序编写的合理,处理完一帧,是不用这么长时间的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星柠科草说2807
2011-03-04 · TA获得超过317个赞
知道小有建树答主
回答量:568
采纳率:0%
帮助的人:348万
展开全部
硬件无应答信号,可以软件应答,不要在中断中处理,实际上是一个字节一个字节的接收,硬件不丢失,处理不过来,软件抛弃新数据,或直接不用旧数据,使用新数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhb0328
2011-03-04 · TA获得超过818个赞
知道小有建树答主
回答量:649
采纳率:0%
帮助的人:799万
展开全部
用中断做没问题的,只有一帧数据发送完后,才会产生中断,才能发送另外一帧数据的....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式