串口发字符串,串口助手收到的数据总在后面多了一个?号

2020-01-26 12:46发布


  #include<reg52.h>

  #define uchar unsigned char
  #define uint unsigned int

  int i=0;
  uchar  table[8];
  
  void serial_init()
  {         

     TMOD|=0x20; //设定T1定时器工作方式2
         TH1=0xfd; //T1定时器装初值
         TL1=0xfd;        //T1定时器装初值
         REN=1;           //允许串口接收
         SM0=0;          //设定串口工作方式1
         SM1=1;          //设定串口工作方式1
         EA=1;         //开总中断
         ES=1;          //开串口中断
         TR1=1;
  }
//////传送数据到计算机////////////          
  void send(uchar *pt)
  {         

    while(*pt != '')
        {
          SBUF = *pt;
          pt++;
          
          while(!TI);
          TI=0;
          
        }
  }
  void main()
  {

     serial_init();
         while(SBUF!=0x0d);//按下回车键,开始把接收到的数据发送给计算机
         send(table);
       
   }
     void serial()interrupt 4
        {  
       
          ES=0;
          table[i++]=SBUF;
          ES=1;       
          RI=0;               
        }
       
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。