您的位置 首页 5G

C51:串口接纳和发送,查询与中止办法

假设要发送一组数据Send[10]一般采用查询发送(循环发送)方式:unsignedcharSend[10];//发送…

假定要发送一组数据 Send[10]一般选用查询发送(循环发送)方法:

unsigned char Send[10];                  //发送量 unsigned char i;                         //循环量 for(i=0;i<10;i++) {        SBUF= Send[i];                    //发送        while(TI==0);                     //等候发送完结        TI=0;                             //清标志 } 

选用中止发送方法:

unsigned char Send[10];                  //发送量 unsigned char num;                       //发送数据量 unsigned char *p;                        //发送用指针   //发送时: num=10;                                  //界说发送数据量 p=&Send ;                                //取首地址 SBUF=*p;                                 //发送第一个数据,发动发送中止 //中止代码: void ComInt() interrupt 4 {        if(RI)  RI=0;                     //接纳中止略;               if(TI)                            //发送中止处理        {               TI=0;                      //清标志               num--;                     //计数减1               p++;                       //指针加1               if(num >0) SBUF=*p;        //数据持续发送至悉数发完        } } 

中止发送长处:省去循环等候时刻,以上面比如为例,9600bps时查询发送约占用单片机10ms多,而中止发送只占单片机几十微秒(单片机速度越快,占用时刻越少)。
中止发送缺陷:代码稍杂乱,发送进程不易控制。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/277419.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部