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