微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助:串口收发数据,只能发或收问题

求助:串口收发数据,只能发或收问题

时间:10-02 整理:3721RD 点击:
刚写了一段串口收发数据程序,运行效果是只能收或只能发。程序的思路是,设置2个标志符号,对应收和发,接收完毕对发的标志位置位,允许发;发完对接收标志位置位,允许收。
求助各位指点一下。代码如下:
#include<reg52.h>
#define uc unsigned char
uc tra,rec,tem;                          //tra-transfer flag      rec-receive flag    tem-data
void init();
void main()
{
         init();
         while(1)
         {
                  if(rec)
                 {
                         tem=SBUF;
                          rec=0;
                 }
                 if(tra)
                 {
                         //SBUF=dat;
                        SBUF=tem;
                        tra=0;
                 }
         }
}
  void init()
  {
          SM0=0;
        SM1=0;
        REN=1;
        PCON=0x00;
        ES=1;
        EA=1;
        SBUF=0;
        rec=1;
        tra=0;
  }
void serial() interrupt 4
{
        if(RI)
         {
                 RI=0;
                tra=1;
       
         }
         if(TI)
         {
                 TI=0;
                rec=1;
         }
}

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

网站地图

Top