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