標(biāo)題: 波特率是9600的時(shí)候,串口顯示軟件,輸出亂碼,請(qǐng)教。 [打印本頁(yè)]

作者: csz9981    時(shí)間: 2017-3-1 19:03
標(biāo)題: 波特率是9600的時(shí)候,串口顯示軟件,輸出亂碼,請(qǐng)教。
void UsartConfiguration()
{
        SCON=0X50;                        //設(shè)置為工作方式1
        TMOD=0X20;                        //設(shè)置計(jì)數(shù)器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;        //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                //打開接收中斷
        EA=1;                                //打開總中斷
        TR1=1;                                //打開計(jì)數(shù)器
}

TH1=0XF3;        //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
TL1=0XF3;

波特率是4800的時(shí)候,串口顯示軟件,輸出正常。

TH1=0XF9;        //計(jì)數(shù)器初始值設(shè)置,注意波特率是9600的
TL1=0XF9;

波特率是9600的時(shí)候,串口顯示軟件,輸出亂碼。



作者: ning    時(shí)間: 2017-3-1 20:56
注意晶振的頻率!
作者: csz9981    時(shí)間: 2017-3-1 22:46
ning 發(fā)表于 2017-3-1 20:56
注意晶振的頻率!

89c52接的晶振是12MHZ。
作者: csz9981    時(shí)間: 2017-3-1 22:47
ning 發(fā)表于 2017-3-1 20:56
注意晶振的頻率!

定時(shí)器1賦初值也沒問(wèn)題呀!
作者: ning    時(shí)間: 2017-3-2 09:03
12MHZ是存在一定的誤差的!換成11.0592試試!
作者: csz9981    時(shí)間: 2017-3-2 21:47
ning 發(fā)表于 2017-3-2 09:03
12MHZ是存在一定的誤差的!換成11.0592試試!

回頭試試

作者: baofu    時(shí)間: 2017-3-3 10:20
據(jù)我的經(jīng)驗(yàn),波特率誤差必須小于3%才能可靠地進(jìn)行通訊,超過(guò)后就難以保證了。
作者: yzwzfyz    時(shí)間: 2017-3-4 02:12
通訊的雙方都要改。
作者: zl2168    時(shí)間: 2017-3-4 07:49
串口通訊應(yīng)該用11.0592,12MHz會(huì)產(chǎn)生波特率誤差,但一次傳輸字節(jié)不多時(shí)不至于輸出亂碼,樓主程序可能還有其他問(wèn)題。
作者: 1443509763    時(shí)間: 2017-3-4 14:21
晶振是11.0592嗎?
作者: xuexi108    時(shí)間: 2017-3-4 20:40
串口顯示軟件是否對(duì)應(yīng)設(shè)置為9600.
作者: pdsyonghong    時(shí)間: 2017-3-5 11:23
4800時(shí)是正常的?如果正常應(yīng)該就是晶振,可以選個(gè)誤差比較小的速率。
作者: peijg1984    時(shí)間: 2017-3-5 14:47
1、串口顯示軟件的波特率沒有匹配;2、下位機(jī)波特率配置的并不是9600




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