×
嵌入式 > 嵌入式开发 > 详情

C51:串口通信接收与发送

发布时间:2020-08-05 发布时间:
|
  • 标签:
假设要发送一组数据 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多,而中断发送只占单片机几十微秒(单片机速度越快

 ,占用时间越少)。

中断发送缺点:代码稍复杂,发送过程不易控制。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
一只老鸟的嵌入式ARM学习心得