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的,怎么又会收到数据呢
多谢各位大侠了 |