你好,请问单片机如果是接受一个字符串,怎么保证接受的数据的完整性的
展开全部
请你参考一下:
字符串的长度得事先知道,如果是多个字符串,得知道最长的那个字符串的长度,
根据这个长度定义一个数组,用来存放接收的字符串。
接收的时候,是一个字节一个字节的接收,接收一个存储一个。
当收到 0 的时候表示字符串接收完毕。
举个例子,假设要接收 n 个字符串,最长的字符串其长度为 10,参考代码如下:
#include<reg51.h>
unsigned char receiveStr[11];//用来存放接收的字符串
void main()
{
SCON=0x50;
PCON&=0x7F;
TMOD=TMOD&0x0F|0x20;
TH1=TL1=0xFD;//假设所用波特率为9600
IE|=0x90;
TR1=1;
while(1);
}
void Serial_INT() interrupt 4
{
static unsigned char i=0;
if(RI)
{
RI=0;
receiveStr[i++]=SBUF;
if(!SBUF)i=0;//如果SBUF==0,表示接收完毕,把 i 清零,下次再接收,就是一
//个新的字符串开始了,如果本次接收的字符串长度是 5,
//那么receiveStr[0~4]都是有用字符,receiveStr[5]的值是0
//用的时候receiveStr[5]里边的 0 就是结束标志
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |