试试下面的行不行,希望能帮到你,你用的是51单片机吧?
void init() //串口初始化
{
TMOD=0x20;//设置定时器1为工作方式2,8位自己重装用于产生波特率
TH1=0xfd; //波特率9600
TL1=0xfd;
TR1=1; //起动时器1
REN=1; //允许串口接收
SM0=0; //串口工作于方式1 8位
SM1=1;
ES=1; //开串口中断
EA=1; //开总中断
}
void send(unsigned char ch) //向串口发送一个字符
{
RI=0; //清除串口接收中断标志
SBUF=ch; //ch是待发送的数据
while(!TI); //等待发送完成
TI=0; //清除发送标志
}
void main()//调用子函数完成该功能
{
init();
send(unsigned char ch);
}
void receive() interrupt 4//从串口接收一个字符
{
//int a=0;
RI=0;//清零为下次中断做准备 否则得一次次复位
a=SBUF;//a是你收到的数据,等号右边的SBUF为接收缓冲器
flag=1;
}
"; //发送的字符串 uchar *Send=&Table; //----// // Init //-您好: 我看了你的程序,首先,你只开了总中断,没有开放串口中断,应该在