找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 2964|回復(fù): 4
收起左側(cè)

STC12C5A60S2單片機(jī)的波特率的問題

[復(fù)制鏈接]
ID:115923 發(fā)表于 2022-1-13 14:34 | 顯示全部樓層 |閱讀模式
1.  STC12C5A60S2的定時(shí)器T1做16位自動(dòng)重載, 不支持這個(gè)功能所以不能使用16位重載模式做波特率發(fā)生器,
要使用獨(dú)立波特率發(fā)生器或者T1, 8位自動(dòng)重載模式。
如果想要產(chǎn)生115200波特率就需要用11.0592的外置晶振了。

2.  那可以用 T2 做波特率嗎?
不行, 因?yàn)镾TC12C5A60S2只有16 位定時(shí)器T0 和T1, 沒有定時(shí)器T2

3.  為什么我的晶振是11,0592, 串口通信還是有亂碼呢?
你注意,下載的時(shí)候, 可以看到 當(dāng)前的時(shí)鐘頻率: 11.318MHz。
根本就不是 11.0592, 有誤差, 重新?lián)Q好一點(diǎn)的晶振和22p的電容。 并且PCB要短,靠近芯片。

評(píng)分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-1-13 22:07 | 顯示全部樓層
第二點(diǎn), 有點(diǎn)片面了,

STC12C5A60S2, 雖然,在手冊(cè)上的說法,是沒有定時(shí)器2的,但是,實(shí)際上,有一個(gè)專用的波特率發(fā)生器, 而這個(gè)專用的波特率發(fā)生器的設(shè)置方式, 和STC15系列的 T2定時(shí)器的設(shè)置為波特率發(fā)生器的方式非常類此,可以把它當(dāng)作,只能為串口服務(wù)的T2。
對(duì)于STC12C5A60S2系列,我也更推薦使用專用波特率發(fā)生器來服務(wù)串口,可以節(jié)省下定時(shí)器1。
回復(fù)

使用道具 舉報(bào)

ID:115923 發(fā)表于 2022-1-15 11:13 | 顯示全部樓層
4. 那可以同時(shí)使用串口1和串口2嗎?  
回復(fù)

使用道具 舉報(bào)

ID:115923 發(fā)表于 2022-1-15 11:49 | 顯示全部樓層
4.  那可以同時(shí)使用串口1和串口2嗎?
---可以的
5.  串口1和串口2都使用這一個(gè)波特率發(fā)生器可以嗎?
---只要波特率一樣,可以的
6. 為什么按照軟件計(jì)算的值, 下載后通訊還是不正常 ?
給你一個(gè)公式,自己核算一下,就會(huì)發(fā)現(xiàn)誤差太大引起的:
比如 Sysclk = 18 . 432MHZ , Baud = 57600 ( 12T mode )
(1).ReLoad=256-INT ( 18432000 / 57600 / 32 / 12 + 0 . 5)
             =256-INT(0.833+0.5)
             =256-1
             =255=0xff
(2).Baud = 18432000 / ( 256-255 ) / 32 / 12
                  =48000
(3).error = ( 48000-57600 ) 57600 * 100 %
                 =16 . 66%

6.  EPROM的開始地址是多少? 按照軟件里的實(shí)例是0x0400,發(fā)現(xiàn)不行。
當(dāng)然不行啊, 它的開始地址是0x00, 而且還要改這個(gè),聽我的沒有錯(cuò)。
#define ENABLE_IAP 0x83           //if SYSCLK<12MHz         11.0592
還有,清除后在寫數(shù)據(jù)前要加 Delay(10);
函數(shù)是:
void Delay(unsigned char n)
{
    unsigned int x;

    while (n--)
    {
        x = 0;
        while (++x);
    }
}
回復(fù)

使用道具 舉報(bào)

ID:115923 發(fā)表于 2022-1-15 16:56 | 顯示全部樓層
7. 為什么我串口發(fā)送的數(shù)據(jù),明明是正確的, 做解析處理 ,卻不執(zhí)行?
因?yàn)槟阌昧薱har,  而做比較的時(shí)候,你用的是0xYY的方式,
所以把 接收的數(shù)據(jù)類型改為unsigned char, 就可以正常解析接收的數(shù)據(jù)了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表