?? serialinter.c
字號:
Void SerialInter ( ) interrupt 4
{
EA = 0; //關(guān)中斷
if (RI0) //接收中斷標(biāo)志位為1時進(jìn)行儲存數(shù)據(jù)操作
{
RI0 = 0; //接收中斷標(biāo)志位軟件清0
if ((SeRecStart == 0)&(SBUF0 == 0xfb)) //判斷接收標(biāo)志及數(shù)據(jù)包起始標(biāo)志
{
SeRecNum = 0; //接收數(shù)量清0
SeRecStart =1; //接收開始標(biāo)志位置1有效
SeRec[SeRecNum] = SBUF0; //接收一個數(shù)據(jù)包開始字節(jié)
}
if ((SeRecStart)&(SeRecNum != 0)) //接收數(shù)據(jù)包中間數(shù)據(jù)
SeRec[SeRecNum] = SBUF0;
SeRecNum++; //接收數(shù)據(jù)順序加1
if ((SBUF0 == 0xf7)&(SeRecNum == SeRec[1])) //判斷數(shù)據(jù)包結(jié)束標(biāo)志及長度
{
SeRecStart = 0; //接收開始標(biāo)志清0
SeRecEnd = 1; //接收結(jié)束標(biāo)志置1有效
RecRight = 1; //接收正確標(biāo)志置1有效
}
if ((SeRecNum>2)&(SeRecNum > SeRec[1])) //判斷是否接收到無效數(shù)據(jù)
{
SeRecStart = 0; //接收開始標(biāo)志清0
SeRecEnd = 1; //接收結(jié)束標(biāo)志置1有效
RecRight = 0; //接收正確標(biāo)志置0
}
}
EA = 1; //中斷服務(wù)程序結(jié)束,開中斷
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -