⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialinter.c

📁 这是《ARM嵌入式常用模块与综合系统设计实例精讲》一书中的程序源代码
💻 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 + -