?? uart.c
字號(hào):
#include "Include.h"
extern unsigned char xdata CommBuf[MAX_BUF_NUMBER]; //串口緩沖
extern unsigned char xdata SCC; //串口接收和校驗(yàn)
extern unsigned char Timer;
unsigned char Rx_Cnt=0; //串口接收計(jì)數(shù)器
bit ReceiveOK = 0; //數(shù)據(jù)包接收完成標(biāo)志位
//UART初始化
//11.0592M晶振 57600波特率
void UARTInit(void)
{
SCON=0X50; //232 COM init 方式1,允許接收
T2CON=0X30;
RCAP2H=0XFF;
RCAP2L=0XFA; //計(jì)數(shù)器加6
TH2=0XFF;
TL2=0XFA; //計(jì)數(shù)器加6
ES = 1;
TR2 = 1;
}
//通過串口發(fā)送1Byte數(shù)據(jù)
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;
}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -