为什么下面程序实现不了串口通信啊

2019-03-24 18:28发布

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tr[]={'w',0x0d,0x0a,0x00} ;
void init();
void  send(uchar *txt) ;
void delay1ms(uint i) ;
void main()
{         while(1)

        {init();
        send(tr);
         }
        }
void init()
{
TMOD=0x20;
PCON=0x00;
TH1=TL1=0xfd;
SCON=0x40;
TR1=1;
}
void send(uchar *txt)
{        uchar *p;
         p=txt;
        while(1)

                {while(*p!=0x00)
                {          SBUF=*p;
                        while(!TI);
                        TI=0;
                        p++;
                }
        delay1ms(500);       
          }
        }
void delay1ms(uint i)
{
        uchar j ;
        while(i--)
        {
                for(j=115;j>0;j--)
                {;
                }
        }
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
djky12
1楼-- · 2019-03-24 23:53
发送函数里面有while(1)  ,进去了就退不出来了把。
liu0033546
2楼-- · 2019-03-25 03:51
 精彩回答 2  元偷偷看……
xubeiping0930
3楼-- · 2019-03-25 07:19
看是看不出的  只有下载了才看的出
付经辉
4楼-- · 2019-03-25 10:32
寄存器设置好,硬件没问题哪有出不来的,init()为什么每次都要init,send里面一个死循环,最多给你执行一遍,程序写的也太不规范了
想个名字0
5楼-- · 2019-03-25 13:03
 精彩回答 2  元偷偷看……

一周热门 更多>