您的位置:首页 > 其它

串口发送与接收字符串是存在很大不同的

2011-06-17 14:25 190 查看
发送字符串较简单,我们先来看一段发送字符串的代码:

unsigned char buff[]={"i love you/n"};

void send_txt()

{

for(i = 0; i < sizeof(buff); i++)

{

SBUF = buff[i] ; //挨个地往SBUF里面写入一个字节,这里是相当于把事先准备好的东西往盒子里放,等到把盒子里的被取走了, //再自动加入一个新的,这里只要一次中断,就可以把字符串发送完,电脑有缓存,可以把这些字符先放在缓存 里,再一并取走

while(!TI); //这里一定要等到前一个字节发送完成后,对TI置0,才能发送下一个字节,

TI = 0;

}

}

接收字符有点小小的区别,这里接收的东西不是事先准备好的,单片机不像pc机那样有缓存,只有一个8位的SBUF,每次接收一个字节,都要产生一次中断,

下面看一段代码:

unsigned char buff[LEN] ;定义一个长度为LEN的缓存来存放接收到的字符串

unsigned char i = 0;

receive_byte()

{

RI = 0;

buff[i++] = SBUF;

while(!RI);

RI = 0;

if(i == LEN) //循环接收

{

i = 0;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: