各位大侠看一下,我下面的程序为什么不能接收两个字节的数据呢?
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void rs232_init();
uchar flag,i,g,d;
uchar code table[]="I get ";
//sbit led=P1^0;
main()
{
rs232_init();
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!
ti);
TI=0;
}
SBUF=g;
while(!TI);
TI=0;
SBUF=d;
while(!TI);
TI=0;
ES=1;
flag=0;
}
}
}
void rs232_init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void ser()interrupt 4
{
RI=0;
g=SBUF;
d=SBUF;
flag=1;
}
我用串口调试助手调试时,上位机给
单片机发送两个字节的数据,例如发送ck两个字母时,只接收到cc两个字母呢?
非常非常感谢你!!我想了一天了也没想通
一周热门 更多>