采用中断模式接收。
#include "Use.h"
#include "Ver.H"
/**************************************************************
UART接收程序在这里完成P0.4接收!
协议:
正常使用后,GPIO3=RXD;GPIO5=TXD!!GPIO4=0 进入下载模式!
波特率:9600 8 n 1
**************************************************************/
#define Uart_IN_IO GPIO3 //GPIO3=接收!
#define MAX_RS232_CNT 20 //通讯的字节数
//**************************************************************
unsigned char Get_Uart_Rece_Dat (void ){
unsigned char i,bt;
//************************************************************
bt=8;
i=0;
BPS_Delay();
while(bt--){
i>>=1;
if(Uart_IN_IO) i |=0x80;
//*************************************************************
//延时等待下一个位
BPS_Delay();
}
//************************************************************
//等待结束位 (1)
//BPS_Delay();
return i;
}
//-----------------------------------------------------------------------
static char getBuf[MAX_RS232_CNT],cnt=0; //接收缓存!
static unsigned char fFlag=0;
//********************************************************************
void Uart_Rece (void ){
//***********************************************************
//产生中断,开始接收!查询!
getBuf[cnt]=Get_Uart_Rece_Dat();
fFlag=5;
if(++cnt >=sizeof(getBuf)) cnt=0;
}
|