if语句在这用一个不行用两个就行
如果如下写 :(发送一个字符接收不了一个字符 )
//头文件
#include <regx52.h>
//宏定义
#define uchar unsigned char
#define uint unsigned int
char a;
//-----------------------------------------------------------------------
//函数声明
void init();
//-----------------------------------------------------------------------
/************************************************************************
主函数
*************************************************************************/
void main()
{
init();
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(!TI);
TI=0;
while(1);
}
}
void init()
{
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SM0=0;
SM1=1;
REN=1;
}
如果这么写如下 :(发送一个字符就能接收一个字符)
/************************************************************************
主函数
*************************************************************************/
void main()
{
init();
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(!TI);
TI=0
}
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(!TI);
TI=0;
while(1);
}
}
但如果这么写如下: (发送一个字符接收不了一个字符 )
/************************************************************************
主函数
*************************************************************************/
void main()
{
init();
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(!TI);
TI=0
}
if(RI)
{
a=SBUF;
RI=0;
SBUF=a;
while(!TI);
TI=0;
}
while(1);
}
求大侠指点 郁闷一上午了 另外SBUF到底能存几个字节 假如我把a设成 int型 是不是 程序还得该 |