新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51學習之串口發送

        51學習之串口發送

        作者: 時間:2016-11-23 來源:網絡 收藏
        先是自己根據PPT學習資料配置了下串口,試圖向上位機發送字母c.下了不能工作,找資料看發現少配置了SCON寄存器,再試,還不行,收到的是亂碼。又看了看人家的發現是配置的參數不正確,就是波特率不對。抄人家的數上來,還不行。郁悶了。
        然后周末搬家,收東西,也沒顧上調。這周單位忙TBKZQ的事情,晚上回來晚,也不說調了。想想這2天晚上回來沒干啥事,有點空虛,決定再調調串口。
        還是上回的程序,收到的東西很怪。并且有時候還會出現就是我關串口,或是電路板斷電,小助手還源源不斷的收數據,最后死機了。(我猜測這種情況是因為串口一直不停發,數據間也沒延時,最后串口處理不過來,會亂碼,會死機。)換個字發,還是不行,但偶爾也會正常,再下程序,OK了。
        elay()
        { int i,j;
        for(i=0;i<7000;i++)
        {
        for(j=0;j<3;j++);
        }
        }

        Uart_int()
        { SCON=0x50;
        TMOD=0x20;
        TH1 =0xfd;
        TL1 =0xfd;

        TR1 =1;
        }

        void Main()
        {
        Uart_int();
        while(1)
        {
        SBUF=c;
        Delay();
        SBUF=s;
        Delay();
        SBUF= ;
        Delay();
        }
        }
        哎,不管怎樣,先弄個正確的,也好有點信心往下進行。至于復雜點的,調用函數發字符啥的,回頭再弄吧。
        總結下串口發送吧!
        1. 串口發送可以不理發送中斷,所以不用配置中斷。但要查詢中斷,肯定要開中斷才行了。
        2. 波特率一定要配置對,不然收到的肯定不是你想要的數據了。
        3. 發數據要注意延時,要不會死機的。
        4. 有空還是要好好學學相關的理論啊!比如波特率初值的計算啥的。


        關鍵詞: 51學習串口發

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临泉县| 莆田市| 肇源县| 通城县| 赣州市| 晋州市| 菏泽市| 买车| 淅川县| 民乐县| 盱眙县| 密山市| 衡南县| 舞阳县| 南澳县| 大英县| 平江县| 康定县| 蕉岭县| 莱阳市| 泰顺县| 黔南| 中西区| 丁青县| 清原| 象山县| 托克逊县| 阳东县| 龙江县| 新源县| 五莲县| 什邡市| 吴桥县| 怀远县| 商南县| 温宿县| 瓦房店市| 昌邑市| 偃师市| 邵阳县| 全州县|