您的位置 首页 厂商

51 串口中止发送程序

假设要发送一组数据Send[10]一般采用查询发送(循环发送)方式:unsignedcharSend[10];//发送量unsignedchari;//循环量for(i=0;i10;i++){S…

假定要发送一组数据Send[10]
一般选用查询发送(循环发送)方法:
unsignedcharSend[10];//发送量
unsignedchari;//循环量
for(i=0;i<10;i++)
{
SBUF=Send[i];//发送
while(TI==0);//等候发送完结
TI=0;//清标志
}

选用中止发送方法:
unsignedcharSend[10];//发送量
unsignedcharnum;//发送数据量
unsignedchar*p;//发送用指针

//发送时:
num=10;//界说发送数据量
p=&Send;//取首地址
SBUF=*p;//发送第一个数据,发动发送中止
//中止代码:
voidComInt()interrupt4
{
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/changshang/275022.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部