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

关于串口的问题

时间:10-02 整理:3721RD 点击:
#include "STC12C5A60S2.H"
#include "intrins.H"
#define uchar unsigned char
#define uint  unsigned int
idata uchar UART_Recv_BUF[8]={0};
uchar Send_Busy   = 0;
uchar Receive_Busy= 0;
uchar i=0;
uchar j=0;
sbit   Fan         = P2^0; //·?éè   
void UART_init(void)
{
        SM0=0;
        SM1=1;
        REN=1;
        BRT=0xFD;
        AUXR=0x15;
        ES=1;
        IPH=0x10;
        IP=0x10;
        EA=1;
}
void send_byte(uchar byte)
{
        SBUF=byte;
        while(!TI);
        TI=0;
}
void printf(uchar*p)
{
        while(*p!='\0')
        {
                send_byte(*p);
                p++;
        }
}
void UART_ISR(void) interrupt 4
{
        if(RI)
        {
                RI=0;
                i=SBUF;
                Receive_Busy= 0;
          if(TI)
         {
                TI=0;
                Send_Busy   = 0;
    }
  }
}
void main()
{
UART_init();
while(1)
{
        //printf("0x5A 0xA5 0x05 0x82 0x00 0x00 0x00 0x64");
  //  send_byte(0x5A);
        //send_byte(0xA5); //??í·
        //send_byte(0x05); //êy?Y3¤?è
        //send_byte(0x82); //???¨êy?Yμ??·D′è?×?·?
        //send_byte(0x00);
        //send_byte(0x00);//0x0000 ??′??÷μ??·
        //send_byte(0x00);
        send_byte(0x64);        
        //printf("hellow");
}
//            if(TI)
//         {
//                TI=0;
//                Send_Busy   = 0;
//    }        
//  }
}
这是我的串口程序  波特率112500  让他发0x64时 但是用串口调试显示时显示16 91 64 不

知道16 91是怎么来的

没看到你程序中的波特率的设置呢?

应该是你的波特率设置和串口的不一致

对应的io口初始化了吗?

现在的年轻人,不敢说什么

BRT 啊    我用独立波特率做的

BRT 啊    我用独立波特率做的

有时正常 有时异常的  

我只用了串口啊

无语了,串口也是用io口

程序刚开始不是初始化了嘛

io口的初始化,真的无语

波特率的问题 检查一下波特率是否一致,或者将波特率改低一点试试

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

网站地图

Top