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

单片机串口通讯的问题

时间:10-02 整理:3721RD 点击:
我的单片机测试的时候,输入1,显示1,输入2,显示2,输入3的时候显示就多了一个3F
#include<reg52.h>
#define uchar unsigned char
uchar a,flag;
       
void main()
{
                SCON = 0X50;
                PCON = 0X00;
                TMOD = 0X20;
                TH1 = 0XE6;
                TL1 = 0XE6;
                TR1 = 1;
                EA =1;
                ES = 1;
        while(1)
        {
               
                if(flag == 1)
                {
                        ES = 0;//串口中断关掉
                        flag = 0;//标志位清零
                        SBUF = a;
                        while(!TI);//发送数据
                        TI = 0;//发送完了TI会置1
                        ES = 1;//串口中断打开
                }
        }       
}
void ser() interrupt 4
{
        if(RI ==1)//检测是否接受数据完成
        RI = 0;
        P1 = SBUF;
        a = SBUF;
        flag = 1;
}


我的输入和输出都是用十六进制的。我的晶振是12mhz的

难道是12MHz晶阵产生波特率有误差的原因?来自: Android客户端

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

网站地图

Top