串口中断丢失数据问题

今日头条

1142人已加入

描述

关于51单片机,串口中断发送与接收出现数据丢失问题


串口中断的接收器具有双缓冲结构,即在从接收寄存器中读出前一个已收到的字节之前,便能接收第2个字节,如果第2个字节已经接收完毕,第1个字节还没有被读出,则将丢失其中一个字节,所以在发送完SBUF中的字节后,就必须立刻进入中断,而且CPU此时,也必须是空闲的。若在发送与接收之间,CPU是忙状态,就会出现丢失数据现象。


因此,串口中断必须是这样一个结构。


                                        if(flag==1)


                                        {

                                            flag=0;


                                            Serial_SendByte();//此函数发送完数据会进入串口中断


                                            //此处不能有任何数据出现,否则会占用CPU时间,处于忙状态,就不能无间隔的去处理中断。


                                        }


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分