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

📄 uart.c

📁 程序是智能指纹锁的
💻 C
字号:
#include "Include.h"
extern uchar xdata CommBuf[MAX_BUF_NUMBER];//串口缓冲
extern uchar xdata SCC;//串口接收和校验
extern uchar Timer;
uchar Rx_Cnt=0;//串口接收计数器
bit	ReceiveOK = 0;//数据包接收完成标志位 
//UART初始化
//11.0592M晶振 57600波特率
void UARTInit(void)
{		SCON=0X50;    //232  COM init 方式1,允许接收
        T2CON=0X30;
        RCAP2H=0XFF;
        RCAP2L=0XFA; //计数器加6
        TH2=0XFF;
        TL2=0XFA;	 //计数器加6
		ES = 1;
        TR2 = 1;
}
void UARTSendByte(uchar i)//通过串口发送1Byte数据
{
	SBUF=i;
	while(0==TI);
        TI=0;
}
void IRQ_UartGet(void) interrupt 4//接收UART的数据
{
	uchar	i;
	
	if(RI==1)
	{
		RI = 0;
		i = SBUF;

	 	if(!ReceiveOK)
		{
			if(0==Rx_Cnt)
			{
				if(PKG_MARK1==i)
				{
					Timer = UART_OUT_TIME;
					CommBuf[Rx_Cnt++] = i;
					SCC = i;
				}			  
			}
			else if(1==Rx_Cnt)
			{
				if(PKG_MARK2==i)
				{
					CommBuf[Rx_Cnt++] = i;
					SCC += i;
				}
				else
				{
					Rx_Cnt = 0;
				}
			}	
			else if(Rx_Cnt<4)
			{
				CommBuf[Rx_Cnt++] = i;
				SCC += i; 		
			}
			else if(Rx_Cnt<CommBuf[3]+4)
			{						   				
				CommBuf[Rx_Cnt++] = i;
				SCC +=i;
			}
			else if(Rx_Cnt==CommBuf[3]+4)
			{
				CommBuf[Rx_Cnt++] = i;				
				ReceiveOK = 1;
			}			
		}
	}		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -