1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 51單片機串口調試,發送一個字符“Y”,出現了如圖一顯示是哪里出了問題 [打印本頁]

作者: 博蒗    時間: 2020-9-4 17:15
標題: 51單片機串口調試,發送一個字符“Y”,出現了如圖一顯示是哪里出了問題
#include  <reg51.h>
void uart_init(void);

void uart_send_byte(unsigned char c);

void delay1s(void)   //誤差 -0.00000000024us
{
    unsigned char a,b,c;
    for(c=95;c>0;c--)
        for(b=26;b>0;b--)
            for(a=185;a>0;a--);
}


void main(void)
{
  uart_init();
  uart_send_byte('Y');
  delay1s( );
}

void uart_init(void)
{
        // 波特率9600
        SCON = 0x50;           // 串口工作在模式1(8位串口)、允許接收
        PCON = 0x00;        // 波特率不加倍

        // 通信波特率相關的設置
        TMOD = 0x20;        // 設置T1為模式2
        TH1 = 253;
        TL1 = 253;                   // 8位自動重裝,意思就是TH1用完了之后下一個周期TL1會
                                        // 自動重裝到TH1去

        TR1 = 1;                // 開啟T1讓它開始工作
        ES = 1;
        EA = 1;
}

// 通過串口發送1個字節出去
void uart_send_byte(unsigned char c)
{
   // 第1步,發送一個字節
   SBUF = c;

   // 第2步,先確認串口發送部分沒有在忙
   while (!TI);

   // 第3步,軟件復位TI標志位
   TI = 0;
}


圖一







作者: 陳潤源home    時間: 2020-9-4 20:41
波特率不對 ,用11.0592M 的晶振 9600波特率的值是0xfd
作者: wulin    時間: 2020-9-4 21:03
主程序沒有while(1)約束,串口被不斷重復初始化。造成串口波特率不穩定。
void main(void)
{
        uart_init();
        while(1)
        {
                uart_send_byte('Y');
                delay1s( );
        }
}
作者: 博蒗    時間: 2020-9-6 14:21
查驗了一下,問題確實是出在波特率上,謝謝大家的指正





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1