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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機串口中斷函數中SBUF的值能存在多久?

[復制鏈接]
跳轉到指定樓層
樓主
ID:482935 發表于 2020-5-8 07:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題,請問51單片機接收數據的SBUF能存活多久呢? 比如下面這個串口中斷復函函數(片段),我將接收中斷標志RI清0之后,SBUF的值多久會消失呢?

unsigned char data = 0;
void Uartinterrpt(void) interrupt 4  
{
        if(RI == 1)  
        {
                RI = 0;      
                          // 假設這里過很久我才把SBUF接收的值拿出來, 使用delay ();
                data = SBUF;   
        }                                             
}

另外如果發送函數如下,SBUF拿發送值的時候 SBUF = c; 恰巧有接收數據被中斷了,執行串口中斷函數了,那么SBUF拿的值會不全(比如8位整個字節拿不全,拿了3位),造成發送亂碼嗎?
void SendByte(unsigned char c)
{
  SBUF = c;
  while(TI==0);
  TI = 0;
}


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

使用道具 舉報

沙發
ID:282850 發表于 2020-5-8 09:26 | 只看該作者
SBUF在下一次串口中斷來之前是不變的,但中斷內不應加延時,并且要盡快取走數據為好。
回復

使用道具 舉報

板凳
ID:452950 發表于 2020-5-8 09:42 | 只看該作者
SBUF是特殊寄存器,只要不寫入新的數據就不會消失,寫入新的數據就會覆蓋之前的,單片機復位后初始值為不確定值。
中斷處理完后會回到中斷點繼續執行,不存在接收到一半就發送出去。另外8位單片機賦值寫入8bit數據應該是同時進行的,應該不會傳到一部分就進入中斷。
回復

使用道具 舉報

地板
ID:213173 發表于 2020-5-8 10:30 | 只看該作者
51單片機的串行口緩沖寄存器(SBUF)的地址是99H,實際是2個緩沖器,寫SBUF的操作完成待發送數據的加載,讀SBUF的操作可獲得已接收到的數據。兩個操作分別對應兩個不同的寄存器,1個是只寫寄存器,1個是只讀寄存器。
SBUF中的數據在不被新數據覆蓋和不斷電的情況下永久不變,也不會因為被讀取而消失。CPU是通過并行總線讀取寄存器,是一次讀取8位即1個字節,不存在“8位整個字節拿不全”的說法。
回復

使用道具 舉報

5#
ID:440553 發表于 2020-5-8 10:53 | 只看該作者
直到單片機斷電、重啟,或者再次接收到串口中斷
回復

使用道具 舉報

6#
ID:910171 發表于 2021-4-28 11:47 | 只看該作者
wulin 發表于 2020-5-8 10:30
51單片機的串行口緩沖寄存器(SBUF)的地址是99H,實際是2個緩沖器,寫SBUF的操作完成待發送數據的加載,讀SB ...

請問老師,假如我用程序檢測到RI變成1了,然后我用Rdata=SBUF讀取數據,但是不對RI操作,也就是RI不清零。而串口還有新的數據源源不斷的進來,這種情況下,SBUF里面的數據會更新嗎?會跟隨串口新進來的數據變化么?還是只要不清零RI就一直保持不變?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天碰日日操 | 国产91在线视频 | 自拍亚洲 | www.免费看片.com | 亚洲444kkkk在线观看最新 | 成人影音| 成人毛片视频免费 | 欧美日韩一二三区 | 天天干.com | 99精品一级欧美片免费播放 | 国内精品久久久久久影视8 最新黄色在线观看 | 久久久久国产一区二区三区四区 | 欧美一级久久 | 欧产日产国产精品视频 | 国产91久久久久久久免费 | 日韩二区 | 亚洲精品一区二区三区中文字幕 | 一区二区三区高清 | 国产免费拔擦拔擦8x高清 | 亚洲视频一区二区 | www.天天操| 亚洲精品久| 中文字幕在线观看一区二区 | 久久伊人亚洲 | 国产精品美女久久久免费 | 欧美xxxx色视频在线观看免费 | 中文字幕国产 | 成人在线免费网站 | av入口 | 精品视频久久久久久 | 欧美a级成人淫片免费看 | 国产一区二区影院 | 国产精品免费一区二区三区 | 在线观看一区 | 午夜影院在线观看 | 久久国产精品一区二区 | 中文字幕av色 | 日韩欧美国产一区二区三区 | 色资源在线 | 欧美精产国品一二三区 | 中文字幕一区二区三区乱码在线 |