微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > C51串口接收数组并发送

C51串口接收数组并发送

时间:10-02 整理:3721RD 点击:
串口接收一组以数据,数组以FF开头,如FF 00 11 22 33 44 55 66,一直接收。然后在满足某一条件时候发送出去,现在收到数据的顺序不对了,程序:
void r_t_data(void) interrupt 4        //串口中断接收数据组,共7个,首位为0xFF.
{
   uchar data_r,i;
           bit rec;
        
        if (RI==1)
        {
         data_r=SBUF;
         RI=0;
         if((data_r==0xff))
                 {i=0;
                 rd=SBUF;
                 i++;
                 rec=1;        }
         if(rec==1)                           
                  {
                          if(i<7)
                           {rd=SBUF;        
                          i++;
                          }
                         if(i>=7)
                         { rec=0;
                         }
                  }                 
                 }
        
               if(r==1)                       //如果r为1,则发送数组。在主程序里;
                        {ES=0;
                        zhuanhuan();                        
                        cai1=cai1+cai;
                        txdd(rd,7);
                        ES=1;        
                         r=0;
                        }
void txdd(uchar tt[],uchar n)                                           //RS232装tt数组里的的n个数据写出,
{  uchar i;
         for(i=0;i<n;i++)
         { SBUF=tt;
          while(!TI );
                TI=0;   
        }
}

搞清楚SBUF里能存储多少东西,你读取SBUF的数据存储在一个变量里,有的值会被覆盖的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top