欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2312|回復: 3
打印 上一主題 下一主題
收起左側

51單片機串口調試,發(fā)送一個字符“Y”,出現了如圖一顯示是哪里出了問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:512883 發(fā)表于 2020-9-4 17:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#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;
}

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

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

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


圖一






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:293363 發(fā)表于 2020-9-4 20:41 | 只看該作者
波特率不對 ,用11.0592M 的晶振 9600波特率的值是0xfd
回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2020-9-4 21:03 | 只看該作者
主程序沒有while(1)約束,串口被不斷重復初始化。造成串口波特率不穩(wěn)定。
void main(void)
{
        uart_init();
        while(1)
        {
                uart_send_byte('Y');
                delay1s( );
        }
}
回復

使用道具 舉報

地板
ID:512883 發(fā)表于 2020-9-6 14:21 | 只看該作者
查驗了一下,問題確實是出在波特率上,謝謝大家的指正
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表