找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1688|回復: 4
打印 上一主題 下一主題
收起左側

這個單片機程序我接收數(shù)據(jù)的時候一直輸出相同的數(shù)據(jù)

[復制鏈接]
跳轉到指定樓層
樓主
ID:1078664 發(fā)表于 2023-7-29 20:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void UartInit(void)                //9600bps@11.0592MHz
{
        PCON |= 0x80;                //使能波特率倍速位SMOD
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時器時鐘1T模式
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
        TMOD &= 0x0F;                //設置定時器模式
        TMOD |= 0x20;                //設置定時器模式
        TL1 = 0xB8;                //設置定時初始值
        TH1 = 0xB8;                //設置定時重載值
        ET1 = 0;                //禁止定時器%d中斷
        TR1 = 1;                //定時器1開始計時
}

void UART_SendByte(u8 Byte)
{
        SBUF=Byte;
        while(TI==0);
        TI=0;
}


void main()
{

   UartInit();
  UART_SendByte(0x05);
}

然后在燒錄之后一直在接收05,并不是接受到一個后停止
而且我還沒有復位嘞
各位大佬有沒有什么解決辦法啊

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2023-7-29 21:53 | 只看該作者
void main()
{
        UartInit();
        UART_SendByte(0x05);
        while(1);
}
回復

使用道具 舉報

板凳
ID:1078664 發(fā)表于 2023-7-30 08:44 | 只看該作者
wulin 發(fā)表于 2023-7-29 21:53
void main()
{
        UartInit();

試過,這樣直接就不輸出了,一個05都發(fā)不進去
回復

使用道具 舉報

地板
ID:1090026 發(fā)表于 2023-7-30 12:03 | 只看該作者
本帖最后由 AiChiTang 于 2023-7-30 16:06 編輯

u8 flag_a=0;
void UART_SendByte(u8 Byte)
{        if(flag_a==1)
      {
           delay(50000)
      }

        if(flag_a==0 )
        {
          SBUF=Byte;
          while(TI==0);
          TI=0;          flag_a=1;
       }

}

void main()
{
   delay(50000)
   UartInit();
   UART_SendByte(0x05);
}


void Delayms(u16 i)//延時函數(shù)i=100延時1ms左右
{
   while(i--);
}

//我感覺這樣寫應該是只能發(fā)一次的,用標志位開了之后就不進去。

/*我覺得WuLin那個改的沒問題的,進入死循環(huán)之后應該是不工作的,但是不知道為什么不對。有沒有可能是最開始發(fā)送的時候不穩(wěn)定,沒發(fā)出去,因為只發(fā)了一次,所以沒看到效果。或者先開的發(fā)送端,再開的接收端,錯過了。我覺得可以先用延時函數(shù)看一下。調好之后再把延時函數(shù)刪了。



回復

使用道具 舉報

5#
ID:1090026 發(fā)表于 2023-7-30 15:06 | 只看該作者
u8 i=0;
void UART_SendByte(u8 Byte)
{

        SBUF=Byte;
        while(TI==0);
        TI=0;
}
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表