#include "SYS.h"
/************************************
* 定义变量类型
*************************************/
char USART_RxBuf[USART_RxBufMAX]={0}; // 定义串口接收数据缓冲区
u8 USART_RxPoint; // Rx缓冲区指针
bit USART_flag=0; // 用来等待发送信息结束后,接收GTM900响应的标志
/***********************************************************
* 函数名称:Delay_nms
* 函数功能:延时nms函数
* 入口参数:ms 出口参数:无
***********************************************************/
void Delay_nms( u16 ms )
{
uchar a,b,c;
while( ms--)
{
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
}
/***********************************************************
* 函数名称:Delay_n10us
* 函数功能:延时n个10us函数
* 入口参数:us 出口参数:无
***********************************************************/
void Delay_n10us( uchar us )
{
uchar a,b;
while( us-- )
{
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
}
/***********************************************************
* 函数名称:USART_Init
* 函数功能:串口初始化函数
* 入口参数:无 出口参数:无
***********************************************************/
void USART_Init(void)
{
SCON=0x50; // UART方式1:8位UART;
REN =1; // 允许串行口接收数据;
PCON=0x00; // SMOD=0:波特率不加倍;
TMOD=0x20; // T1方式2,用于UART波特率;
TH1 =0xFD; // 装初值;
TL1 =0xFD; // 装初值
TR1 =1; // 启动定时器1
EA=1; // 打开全局中断控制
ES=1; // 开启串口中断
}
/***********************************************************
* 函数名称:USART_SendChar
* 函数功能:发送单个字符
* 入口参数:ch 出口参数:无
***********************************************************/
void USART_SendChar(uchar ch)
{
SBUF=ch; // 送入缓冲区
while(TI!=1); // 等待发送完毕
TI=0; // 软件清零
}
/***********************************************************
* 函数名称:USART_SendStr
* 函数功能:发送字符串
* 入口参数:*str 出口参数:无
***********************************************************/
void USART_SendStr(uchar *str)
{
while(*str!='\0')
{
USART_SendChar(*str);
Delay_nms(2);
str++;
}
}
|