微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么我的程序只能发送一个字节到上位机

为什么我的程序只能发送一个字节到上位机

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
unsigned char flag,a,i;
unsigned char table[]="I get ";
void main()
{
        SCON = 0x50;
        TMOD = 0x20;
        PCON = 0x80;
        TH1 = 0xf3;
        TL1 = 0xf3;
        TR1 = 1;
        EA = 1;
        ES = 1;
        while(1)
        {
                if(flag==1)
                {
                        ES = 0;
                        for(i=0;i<6;i++)
                        {
                                SBUF = table[i];
                                while(!TI);
                                TI = 0;       
                        }
                        SBUF = a;
                        while(!TI);
                        TI = 0;
                        ES = 1;
                        flag = 0;
                }       
        }       
}
void ser() interrupt 4
{
        RI = 0;
        a = SBUF;
        flag = 1;       
}

你这没有问题吧,不过我把你的波特率改了。我使用的11.0592MHz 9600的
TH1 = 0xfa;
TL1 = 0xfa;
输入a,结果:
I get aI get aI get a
---------------------------------------
不好意思,看错问题了!

应该是串口接收时被占用了吧!

TI = 0;     这句是不是有问题

这个没问题,这个是要软件清零

我把for语句删除后就可以发送多个字符串,这是为什么

TMOD是什么模式,自动重装载吗

是的....

是什么问题呢?                                   

这是郭天祥的程序吧   

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

网站地图

Top