为何串口助手第一下不稳定

2019-07-15 20:16发布

写了一个特别简单的程序   但是不知为何 用串口调试助手时候   有不稳定因素产生

程序如下
#include<reg51.h>
int statu;
int dat;
void UsartConfiguration();  //初始化


void main()
{
        //int receiveData;
        UsartConfiguration();
        while(1)
        {
            if(RI)
         {
               dat=SBUF;
             P2=dat;
             RI=0;         
          }
       }          
}


void UsartConfiguration()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;
        RI=0;                                        //打开计数器
}



P2控制流水灯    每次关闭单片机 然后重新启动时候  发送的第一个指令都是无效的,从第二个开始,流水灯才能正常工作,这是为什么?????
123.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
qq729101414
2019-07-16 09:51
本帖最后由 qq729101414 于 2014-4-10 08:04 编辑
xhjxhj5477 发表于 2014-4-8 21:07
突然发现 初始化程序里加一句话  TI=1,就没有问题了    虽然不知道为什么???? ...

这个不是串口的问题!!!你上位机的串口一直检测接收信号 满足起始位停止位条件就把数据存入缓存 你软件开着自然就显示了 它哪里管你数据对错!你TI = 1; 初始化单片机的TXD 引脚为高  上位机没有检测到起始条件 自然就不做接下来的事了(采样引脚电平等),

一周热门 更多>