|
代碼如下所示,只要定時(shí)器一打開(TR1=1),串口助手里面就不停的顯示00 00 00.。。,發(fā)送和接收都沒反應(yīng),實(shí)在找不出哪里的問題,請各位大神幫看一下
#include <REGX52.H>
void URET_TX(unsigned char key)
{
SBUF=key; //寫入數(shù)據(jù)進(jìn)SBUF緩存器
if(TI==1) //檢測標(biāo)志位,是否是1,,表示數(shù)據(jù)傳出完成
{
if(RI==1) //檢測是否接收完成,如果是1,標(biāo)示數(shù)據(jù)被完整接收
P2=SBUF; //讀取發(fā)送過來的SBUF數(shù)據(jù)
RI=0; //重置數(shù)據(jù)傳輸完成標(biāo)志位
TI=0; } //重置數(shù)據(jù)接收完成標(biāo)志位
}
void URET_Tu(void)
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位數(shù)據(jù),可變波特率
TMOD &= 0x0F; //清除定時(shí)器1模式位
TMOD |= 0x20; //設(shè)定定時(shí)器1為8位自動重裝方式
TL1 = 0xF4; //設(shè)定定時(shí)初值
TH1 = 0xF4; //設(shè)定定時(shí)器重裝值
ET1 = 0; //禁止定時(shí)器1中斷
TR1 = 1; //啟動定時(shí)器用于產(chǎn)生波特率
ES=1; //開啟串口通信
}
void main(void)
{
URET_Tu();
URET_TX(SBUF);
}
上面代碼 只要TR1=1, URET_TX()函數(shù)中就算只有SBUF=key一個(gè)語句,也全是00 00 00...不停的出
|
|