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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2860|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)串口通信程序調(diào)試,發(fā)送與接收同步

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:416896 發(fā)表于 2020-12-20 22:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近弄藍(lán)牙通信,調(diào)試的時(shí)候沒(méi)想到有更好的辦法,所以想到通過(guò)USB轉(zhuǎn)TTL模塊,通過(guò)單片機(jī)串口來(lái)調(diào)試。
這個(gè)程序主要是測(cè)試單片機(jī)接收到數(shù)據(jù),就馬上發(fā)一個(gè)數(shù)據(jù)。就可以測(cè)試單片機(jī)有沒(méi)收到數(shù)據(jù)了。串口助手調(diào)試。代碼直接附上~圖在測(cè)試的時(shí)候沒(méi)有截圖,直接用串口助手就行了。
      #include <reg52.h>  
     #define uc unsigned char   
     #define uint unsigned int  


      uc a,flag; //定義變量 a  ,  flag
     void init()  
{  
     TMOD=0x20;    //定時(shí)器工作方式,選擇了定時(shí)器1,工作方式2 八位初值自動(dòng)重裝的8位定時(shí)器。         
     TH1=0xfd;     //定時(shí)器1初值  ,設(shè)置波特率為9600 晶振11.0529MHZ?  
     TL1=0xfd;  
     TR1=1;        //開(kāi)啟定時(shí)器1  

     SM0=0;  
     SM1=1;        //10位異步接收,(8位數(shù)據(jù))波特率可變  
     REN=1;        //允許串行口接收位  
     EA=1;         //允許中斷(總閘)  
     ES=1;         //允許串口中斷  
}  
void main()        //主函數(shù)
{  
     init();  

     while(1)  
{  
       if(flag==1)  
     {     
         ES = 0;
         flag = 0;
         SBUF = a;           
         while(!TI);
         TI = 0;
         ES =1;
         }
}  
}  

void intt() interrupt 4       //串口中斷服務(wù)函數(shù)
{  
         if(RI)       //接收數(shù)據(jù),手動(dòng)將RI清0  
     {         
         RI=0;  
          a  = SBUF;
                  flag = 1;

     }  

     if(TI)     //發(fā)送數(shù)據(jù)  
     {  
     }      
}  

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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