標(biāo)題: 單片機(jī)串口怎么接受不到數(shù)據(jù)? [打印本頁(yè)]

作者: 格式化無(wú)悔    時(shí)間: 2023-5-19 10:01
標(biāo)題: 單片機(jī)串口怎么接受不到數(shù)據(jù)?
void Usart() interrupt 4
{
    u8 receiveData;
    receiveData= Weight_Shiwu;
//     receiveData=SBUF;//出去接收到的數(shù)據(jù)
//    RI = 0;//清除接收中斷標(biāo)志位
    SBUF=receiveData;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
    while(!TI);             //等待發(fā)送數(shù)據(jù)完成
    TI=0;                         //清除發(fā)送完成標(biāo)志位
   
}
作者: 格式化無(wú)悔    時(shí)間: 2023-5-19 10:14
void UsartInit()  {      SCON=0X50;            //設(shè)置為工作方式1      TMOD=0X20;            //設(shè)置計(jì)數(shù)器工作方式2      PCON=0X80;            //波特率加倍      TH1=0XF3;                //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的      TL1=0XF3;      ES=1;                        //打開(kāi)接收中斷      EA=1;                        //打開(kāi)總中斷      TR1=1;                    //打開(kāi)計(jì)數(shù)器  }
作者: 小牢頭    時(shí)間: 2023-5-19 12:17
通訊的要看2方設(shè)置和晶振
作者: 最后一個(gè)夏天1    時(shí)間: 2023-5-19 12:47
檢查下波特率和接線吧
作者: yxtao    時(shí)間: 2023-5-19 13:11
查看一下初始化有沒(méi)有問(wèn)題,然后看看串口有沒(méi)有收到實(shí)際的數(shù)據(jù)
作者: yzwzfyz    時(shí)間: 2023-5-19 14:50
通訊是雙方的事,需要雙方滿足條件。單獨(dú)討論一方無(wú)意義。
作者: 格式化無(wú)悔    時(shí)間: 2023-5-19 15:05
yxtao 發(fā)表于 2023-5-19 13:11
查看一下初始化有沒(méi)有問(wèn)題,然后看看串口有沒(méi)有收到實(shí)際的數(shù)據(jù)

串口沒(méi)有收到數(shù)據(jù)
作者: xuyaqi    時(shí)間: 2023-5-19 18:29
你的串口中斷只是發(fā)送,沒(méi)有接收。
作者: LXJG    時(shí)間: 2023-5-19 23:11
串口有沒(méi)有初始化,或者引腳接的不對(duì)
作者: TTQ001    時(shí)間: 2023-5-20 08:32
請(qǐng)讓我們看看設(shè)置和初始化串口的代碼。
作者: ydatou    時(shí)間: 2023-5-20 09:55

串口中斷的寫(xiě)法如圖所示。
如樓主只想把接收的數(shù)據(jù)轉(zhuǎn)發(fā)回去,SBUF = receiveData;此行注釋去除就行。
如果想正常使用串口發(fā)送,要添加如下代碼:
  1. //注意串口初始化要有TI=1;
  2. char putchar (char c)
  3. {
  4.         while(!TI);
  5.         TI=0;
  6.         SBUF = c;
  7.         return c;
  8. }
復(fù)制代碼




作者: kk17328    時(shí)間: 2023-6-1 08:25
波特率沒(méi)有設(shè)置對(duì),一般都是這種低級(jí)問(wèn)題




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