uint wemdu,shidu; 
 
put[0]=wendu&0x00FF;//低8位 
   put[1]=(wendu&0xFF00)>>8;//高8位 
   put[2]=shidu*0x00FF;//低8位 
   put[3]=(shidu*0xFF00)>>8;//高8位 
 
这样写对吗,但为什么收到的第一个数据总是0x00呢 
 
void initUart(void) 
{ 
 T2CON=0x30;//0011 0000 
 SCON=0x50; 
 TH2=0xFF; 
 TL2=0xDC; 
 RCAP2H=0xFF; 
 RCAP2L=0xDC; 
 TR2=1; 
} 
 
 
void send (void) 
{uchar i,pf; 
do{ 
SBUF=0xaa; 
while(TI==0); 
TI=0; 
while(RI==0); 
RI=0; 
  }while((SBUF^0xbb)!=0); 
do{ 
pf=0; 
for(i=0;i<7;i++) 
     { 
SBUF=put[i]; 
pf+=put[i]; 
while(TI==0); 
TI=0; 
     } 
SBUF=pf; 
while(TI==0);TI=0; 
while(RI==0);RI=0; 
  }while(SBUF!=0); 
TR1=0; 
} 
 
上面是初始化和发送函数 
而且还有问题put[4],put[5],put[6]都应该是0的,怎么又会收到数据呢 
 
 
多谢各位大侠了 |   
     
  
 |