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