在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 模擬串口自動測量波特率的單片機(jī)程序

            模擬串口自動測量波特率的單片機(jī)程序

            作者: 時間:2012-08-02 來源:網(wǎng)絡(luò) 收藏

            我這個程序能夠測量串口的,并且將自身的設(shè)置到通訊。
            這個在STC89C52/STC15F104(其實(shí)主要針對STC15F104,因為它沒有串口)上面通過。不過因為是,在11.0592 12T的情況下,最多到19200。
            然后在STC15F104上面,要適量的減少補(bǔ)償值……
            順便說一句,編譯器建議使用sdcc。keil的SB printf函數(shù)搞死我了……在22.1184 6T的情況下大約能到57600.
            當(dāng)然在STC15F系列到115200毫無壓力,可是是半雙工的。要做全雙工只能減倍波特率……
            測量波特率的方法很簡單。校準(zhǔn)他的波特率的方法就是發(fā)送沒有連續(xù)低電平的字符,類似0x55/0xff/0x7f之類的。使用這個特性還可以將它用在STC自動冷啟動下載器中。不過注意要限制校準(zhǔn)波特率。否則你的正常串口通訊可能會被干擾,因為你比如115200通訊的時候,正好波形類似57600的7F,校準(zhǔn)上去了把你的連接掐了,估計很多人都會看看程序是不是跑飛了……所以一定要把同步波特率降到4800以下,因為STC-ISP的默認(rèn)最低波特率是從1200~4800.
            這個也可以適用于不準(zhǔn)晶振的單片機(jī)和計算機(jī)通訊。方法就是計算機(jī)以不同波特率發(fā)送校準(zhǔn)信號,找出誤碼率最低的波特率,然后發(fā)送確認(rèn),讓單片機(jī)在這個重載值下運(yùn)行,也適用于時鐘速度可能變化的單片機(jī)/懶得計算重載值的人使用。
            然后低于4800的波特率在11.0592的速度下面只能分頻,這也是不得已的……
            上代碼:

            /*
            * 自適應(yīng)波特率程序,
            * BY 萬致遠(yuǎn)@rwzy.co.cc
            * CRYSTAL:任意
            */
            #include hwconfig.h>
            #include type-def.h>
            #include stdio.h>
            #define MIS_0 0
            #define MIS_2 1
            #define MIS_4 2
            #define MIS_8 3
            #define MIS_16 4
            #define TX1 P1_0 //發(fā)送數(shù)據(jù)端口
            #define RX1 P1_1 //接收數(shù)據(jù)端口
            BYTE min_mode;//減倍模式
            void WaitTF1()
            {
            while(!TF1);
            TF1=0;
            if(min_mode==MIS_2)
            {// /2
            while(!TF1);
            TF1=0;
            }
            else if(min_mode == MIS_4)
            {// /4
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            }
            else if(min_mode == MIS_8)
            {// /8
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            }
            else if(min_mode == MIS_16)
            {// /16
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            while(!TF1);
            TF1=0;
            }
            }


            上一頁 1 2 下一頁

            關(guān)鍵詞: 模擬串口 自動測量 波特率

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉