久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教各位,現(xiàn)在一直搞不清楚單片機(jī)串口代碼是哪里的問題?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1067311 發(fā)表于 2023-3-20 21:03 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
代碼如下所示,只要定時(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...不停的出
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:94031 發(fā)表于 2023-3-21 07:37 | 只看該作者
在 main 最后應(yīng)加 while(1);
回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2023-3-21 13:27 | 只看該作者
老師有沒有講過,當(dāng)MAIN函數(shù)執(zhí)行到最后一句之后,CPU將如何運(yùn)行呢?
回復(fù)

使用道具 舉報(bào)

地板
ID:1067311 發(fā)表于 2023-3-21 20:11 | 只看該作者
用過while(1)也是不行的 我另一個(gè)帖子  有朋友幫解決了 但是那個(gè)邏輯問題我還是很理解
回復(fù)

使用道具 舉報(bào)

5#
ID:1067311 發(fā)表于 2023-3-21 20:14 | 只看該作者
yzwzfyz 發(fā)表于 2023-3-21 13:27
老師有沒有講過,當(dāng)MAIN函數(shù)執(zhí)行到最后一句之后,CPU將如何運(yùn)行呢?

void URET_TX()
{   
        if(RI==1)                //查詢接收中斷請求標(biāo)志位為1(已收到)
        {
                RI=0;                //接收中斷請求標(biāo)志位清0
                num=SBUF;        //獲取接收寄存器數(shù)據(jù)
                SBUF=num;        //發(fā)送數(shù)據(jù)
                while(!TI);        //等待發(fā)送中斷請求標(biāo)志位為1(已發(fā)送)
                TI=0;                //發(fā)送中斷請求標(biāo)志位清0
        }
...................................................................................................分隔線
函數(shù)上面這樣寫就可以收發(fā) ,但是換個(gè)順序就不行,比如下面

void URET_TX()
{   
                SBUF=num;        //發(fā)送數(shù)據(jù)
                while(!TI);        //等待發(fā)送中斷請求標(biāo)志位為1(已發(fā)送)
                TI=0;                //發(fā)送中斷請求標(biāo)志位清0
        if(RI==1)                //查詢接收中斷請求標(biāo)志位為1(已收到)
        {
                RI=0;                //接收中斷請求標(biāo)志位清0
                num=SBUF;        //獲取接收寄存器數(shù)據(jù)
               
        }
}

我把它改成這樣就又全部是00 000 00  
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美一区二区久久性色99 | 视频精品一区 | 成人av一区 | 最新国产福利在线 | www国产成人免费观看视频,深夜成人网 | 人人性人人性碰国产 | 另类专区成人 | 亚洲a在线观看 | 天天爱天天操 | 日本一区二区三区视频在线 | 99精品99| 欧美精品一区二区三区在线播放 | 免费看a| 欧美日日 | 国产精品18毛片一区二区 | 久久国产精品偷 | 亚洲成人a v| 国产精品久久久爽爽爽麻豆色哟哟 | 9久久婷婷国产综合精品性色 | 亚洲精品一区二区 | 久久久女 | 日日操视频 | 欧美综合一区 | 久久久久久久av麻豆果冻 | 超碰在线播 | 中文字幕亚洲视频 | 日韩aⅴ片| 瑞克和莫蒂第五季在线观看 | 色综合久 | 欧美a级成人淫片免费看 | 狠狠干美女 | 亚州毛片 | 久久久久久久国产精品视频 | 成人在线免费电影 | 国产美女视频黄a视频免费 国产精品福利视频 | 一区二区三区欧美 | 欧美啊v在线观看 | 自拍视频网 | 亚洲国产精品精华素 | 一区二区免费在线视频 | 久久综合狠狠综合久久综合88 |