串口通过中断发送数据问题

2019-03-24 17:57发布

如下,是我写的一个串口代码,使用的中断发送数据,通过上位机收到的数据总是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--);
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
exiao
1楼-- · 2019-03-24 21:39
上位机软件的串口配置和单片机的一样吗?
brain发烧友
2楼-- · 2019-03-24 22:47
exiao 发表于 2015-7-2 22:55
上位机软件的串口配置和单片机的一样吗?

问题解决了,我的BUSY没有设初值0.谢谢你的回答。
exiao
3楼-- · 2019-03-25 02:27
 精彩回答 2  元偷偷看……

一周热门 更多>