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

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条回答
ntmusic
2019-07-16 17:59
qq729101414 发表于 2014-4-10 18:09
十六进制  是进制!!!不是位宽!!!0xff  位宽8位  这个是十六进制表示!!! ...

这位兄弟显然还是没搞清楚我到底要说什么。进制只是数值表示的形式,串口传输是以字节为单位的,一字节就是8位,即使你用16位数据空间去保存也只是利用了空间的低8位,而且还给单片机运行带来额外运算开销,降低效率,尤其还是用有符号数的时候。

一周热门 更多>