如下,是我写的一个串口代码,使用的中断发送数据,通过上位机收到的数据总是0x00.不使用中断发送就不会出现这种问题,有哪位大神帮我分析一下,为什么收到的都是0x00。
void Uart_Init()
{
SCON=0X40; //éèÖÃ′®¿ú11¤×÷·½ê½Îa1
AUXR|=0X01; //Ñ¡ÔñT2×÷Îa′®¿ú12¨ìØÂê·¢éúÆ÷
AUXR|=0X04; //éèÖö¨ê±Æ÷ê±ÖóÎa1T
T2H=(65536-(FOSC/4/BAUD))>>8; //é趨2¨ìØÂêÖØ×°Öμ
T2L=(65536-(FOSC/4/BAUD)); //í¬éÏ
AUXR|=0x10; //Æô¶ˉ¶¨ê±Æ÷2
EA=1; //¿a×üÖD¶Ï
ES=1; //¿a′®¿úÖD¶Ï
// led1=1;
}
void Uart1() interrupt 4 using 1
{
if(RI==1)
{
RI=0;
}
if(TI==1) //¼ì2éêÇ·ñ·¢Ëííê±Ï
{
TI=0;
busy=0;
led1=~led1;
delayms(200);
}
}
void SendData(uchar dat)
{
while(busy);
busy=1;
SBUF=dat;
// ES=0;
// SBUF=dat;
// while(!TI);
// TI=0;
// ES=1;
//}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
此帖出自
小平头技术问答
一周热门 更多>