📄 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 + -