串口数据的收发处理
void getuart(void)
{
unsigned short count=0x00;
while(UART_BASE[0x14] & 0x01)
{
bInChar=UART_BASE[0x00];
//DBG_PRINT("bInChar=0x%bx\n",bInChar);
switch (bInChar)
{
case 0x55:
if (RxCnt==0)
{
pRx1 = Rx1buff;
*pRx1 = bInChar;
pRx1++;
RxCnt = 1;
SetRadarValid();
}
else
recData();
break;
case 0xFE:
Parse_UART0_Recvd();
RxCnt = 0;
break;
case 0XFF:
pRx1 = Rx1buff;
RxCnt = 0;
break;
default:
recData() ;
break;
}
count++;
if(count>0xff00)
break;
}
clear_tw_irq(IRQ_UART0_INT);
}
void Parse_UART0_Recvd()
{
DBG_PRINT("Rec=0x%bx 0x%bx 0x%bx 0x%bx 0x%bx 0x%bx 0x%bx 0x%bx 0x%bx\n",Rx1buff[0], Rx1buff[1],Rx1buff[2],Rx1buff[3],Rx1buff[4],Rx1buff[5],Rx1buff[6],Rx1buff[7],Rx1buff[8]);
}
void recData()
{
if((pRx1 >= Rx1buff+RXBUFSIZE) | (pRx1< Rx1buff)) pRx1 = Rx1buff;
*pRx1 = bInChar;
pRx1++;
RxCnt++;
}