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

求助 51单片机串口问题

时间:10-02 整理:3721RD 点击:
51单片机串口发送数据,用查询法,如果不清空TI那么收到的是乱码,但是显示的内容还是要发送的字符串里的?、
程序:#include<reg52.h>//发送数据
#define uint unsigned int
#define uchar unsigned char
uchar code table[]="huanying! ";
void delay(uint x)
{
        uint i,j;
        for(i=x;i>0;i--)
                for(j=114;j>0;j--);
}
void main()
{
        uchar i;
        TMOD=0x20;//定时器1的工作方式2
        TH1=0XFD;
        TL1=0XFD;//赋初值,波特率为9600
        TR1=1;//启动定时器1
        SM0=0;
        SM1=1;//串口工作方式1  
        while(1)
        {
                for(i=0;i<10;i++)
                {
                        SBUF=table[i];//传送数据 按位传送
               
                        while(!TI);//判断数据是否发送完
                        TI=0;//标志位清零       
                }                        
        }
}
这样收到的是welcome!
如果去掉        while(!TI);//判断数据是否发送完
                        TI=0;//标志位清零       
那么收到的是乱码

不懂你想表达个什么意思

循环执行的速度快于一个字节的传输速度,一个完整的字节还没传输结束,你算一下波特率!

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

网站地图

Top