標題:
STC15W204S單片機串口通信問題
[打印本頁]
作者:
stdwmap
時間:
2021-7-5 15:49
標題:
STC15W204S單片機串口通信問題
請各位大佬幫忙看下下面這段程序,在STC89C52RC上可以正常運行,移植到STC15W204S上無法運行,我自己想過修改AUXR寄存器改成1T或者12T模式都沒成功,這里貼出51單片機源程序,指點一下要修改些什么,謝謝。
#include <reg52.h>
void ConfigUART(unsigned int baud);
void main()
{
ConfigUART(9600); //配置波特率為9600
while (1)
{
while (!RI); //等待接收完成
RI = 0; //清零接收中斷標志位
SBUF = SBUF + 1; //接收到的數(shù)據(jù)+1后,發(fā)送回去
while (!TI); //等待發(fā)送完成
TI = 0; //清零發(fā)送中斷標志位
}
}
/* 串口配置函數(shù),baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
SCON = 0x50; //配置串口為模式1
TMOD &= 0x0F; //清零T1的控制位
TMOD |= 0x20; //配置T1為模式2
TH1 = 256 - (11059200/12/32)/baud; //計算T1重載值
TL1 = TH1; //初值等于重載值
ET1 = 0; //禁止T1中斷
TR1 = 1; //啟動T1
}
作者:
wulin
時間:
2021-7-5 16:38
芯片型號 : STC15W204S
關(guān)于此芯片的重要說明:有定時器0和定時器2 (注意:無定時器1)
要用定時器2作波特率發(fā)生器
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x01; //串口1選擇定時器2為波特率發(fā)生器
AUXR |= 0x04; //定時器2時鐘為Fosc,即1T
T2L = 0xE0; //設(shè)定定時初值
T2H = 0xFE; //設(shè)定定時初值
AUXR |= 0x10; //啟動定時器2
}
作者:
stdwmap
時間:
2021-7-5 16:42
1樓完美解答,謝謝。
作者:
人人學(xué)會單片機
時間:
2021-7-6 20:26
串口1打印程序 可以打印3個十六位的變量 波特率9600
http://www.torrancerestoration.com/bbs/dpj-201660-1.html
串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復(fù)位
http://www.torrancerestoration.com/bbs/dpj-200927-1.html
作者:
人人學(xué)會單片機
時間:
2021-7-6 20:27
串口1打印程序 可以打印3個十六位的變量 波特率9600
http://www.torrancerestoration.com/bbs/dpj-201660-1.html
串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復(fù)位
http://www.torrancerestoration.com/bbs/dpj-200927-1.html
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1