C51:串口接收和发送,查询与中断方法
时间:11-09
来源:互联网
点击:
假设要发送一组数据 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多,而中断发送只占单片机几十微秒(单片机速度越快,占用时间越少)。
中断发送缺点:代码稍复杂,发送过程不易控制。
C51串口接收发送查询中断方 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)