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

📄 uart.c

📁 this progam is used with e_lock,and so on.
💻 C
字号:
#include "Include.h"
extern	unsigned char xdata CommBuf[MAX_BUF_NUMBER];			//串口缓冲
extern	unsigned char xdata SCC;					//串口接收和校验
extern	unsigned char Timer;
unsigned char	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;
}
//通过串口发送1Byte数据
void UARTSendByte(unsigned char i)
{
	SBUF=i;
	while(0==TI);
        TI=0;
}

void	IRQ_UartGet(void)	interrupt	4
{
	unsigned char	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 + -