日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]此串口處理程序是基于以下的協(xié)議寫成的:幀內(nèi)容FRAME=幀頭FA+幀長度len(不包括幀頭幀尾)+數(shù)據(jù)流data+幀尾FB。串口中斷子程序里對整個數(shù)據(jù)流進(jìn)行處理,而不是一個字節(jié)一個字節(jié)地處理,在中斷中等待處理完所有的

此串口處理程序是基于以下的協(xié)議寫成的:

幀內(nèi)容FRAME=幀頭FA+幀長度len(不包括幀頭幀尾)+數(shù)據(jù)流data+幀尾FB。

串口中斷子程序里對整個數(shù)據(jù)流進(jìn)行處理,而不是一個字節(jié)一個字節(jié)地處理,在中斷中等待處理完所有的字節(jié)。

void Uart_Int(void) interrupt 4 //串口要加幀頭與FA幀尾FB
{
unsignedchar len, i;
unsignedint j=0;
unsignedchar serialStart;
if(RI) //收到數(shù)據(jù)
{
serialStart=SBUF;
RI=0;
if(serialStart==0xFA)
{
while(RI==0);
len=SBUF; //第一個字節(jié)是數(shù)據(jù)包的長度
RI=0; //清零RI以便接收下一個
for(i=0;i{
while(!RI)
{
j++;
if(j>1000)
{

break;//break跳出循環(huán)語句
}
}
if(j<1000)
{
serialBuffer[i]=SBUF;
RI=0;
j=0;
}
else
{
break;
}
}
if((i==len+1)&&(serialBuffer[i-1]==0xFB)) //最后一位是0xFB。
{
REN=0; // 清零接收位

serialCmd=TRUE; //接收完畢,收到命令有效,置位1 又說明pc發(fā)送的數(shù)據(jù)單片機接收成功
}
else

return;
}
else
return;
}
else if(!RI && TI) //發(fā)送-RI=0,TI=1
{
TI=0;//TI是為了進(jìn)入中斷而故意軟件設(shè)置的,所以先清0
SBUF=0xFA;
while(!TI);
TI=0;
len=serialBuffer[0]; //發(fā)送的第一個字節(jié)是包的長度
for(i=0;i{
SBUF=serialBuffer[i];
while(!TI); //等待發(fā)送完畢
TI=0;
}
SBUF=0xFB;
while(!TI);
TI=0;
REN=1;
//ren=receive enable
}
}


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉