求助啊 单片机串口发送数组的问题

2020-01-23 14:33发布

打算用单片机发送一个数组recevie[8],应该怎么做啊:
#include<STC15F2K.H>
#define uchar unsigned char
#define uint unsigned int
uchar n=0;
uchar receive[8];
uchar n;
uchar m;
void UartInit(void)                //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位数据,可变波特率
        AUXR |= 0x40;                //定时器1时钟为Fosc,即1T
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //设定定时器1为16位自动重装方式
        TL1 = 0xE0;                //设定定时初值
        TH1 = 0xFE;                //设定定时初值
        ET1 = 0;                //禁止定时器1中断
        TR1 = 1;                //启动定时器1
        EA=1;
        ES=1;
}
void delayms(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void uart_send(receive)
{
   uchar i;
   ES=0;
   for(i=0;i<8;i++)
   {
      SBUF=receive[i];

   while(!TI);
   TI=0;
   }
   ES=1;
}
void uart_rec() interrupt 4
{
   
  
   if(RI)
   {
      receive[n]=SBUF;
          n++;
          if(n==7)
          {
             ES=0;
           }
             RI=0;
        }
}
void main()
{
   
   UartInit();
   
   while(1)
   {
     P0=receive[0];
         P1=receive[1];
         delayms(4000);
     P0=receive[2];
         P1=receive[3];
         delayms(4000);
     P0=receive[4];
         P1=receive[5];
         delayms(4000);
     P0=receive[6];
         P1=receive[7];
         delayms(4000);
         if(n==7)
            {
                  uart_send(receive);
                }
                n=0;
         }
}
我这个程序是当单片机收到8个字节的数据,放到数组中,然后从串口发送出去,有做过这个的朋友吗,哪个地方错了啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。