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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

小白求助 關于51單片機串口數據處理

查看數: 1921 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2023-6-7 17:23

正文摘要:

判斷從串口接收到的兩個字節,即4位16進制的數據,如果第一個字節對了led1亮然后判斷第二個,第二個字節對了led3亮。 但是令我很好奇的是某些數據是對的,另一些卻不能正確判斷 如fafb, e1d1 ,等,燈可以正常亮起 ...

回復

ID:1082596 發表于 2023-6-7 21:54
劉宇杰找實訓 發表于 2023-6-7 21:04
串口中斷函數接收第一個字節之后,開啟定時器計數。接受下一個字節的時候清空定時器計數。如此,當沒有數據 ...

謝謝解答
ID:1082659 發表于 2023-6-7 21:04
串口中斷函數接收第一個字節之后,開啟定時器計數。接受下一個字節的時候清空定時器計數。如此,當沒有數據接收后,計時器無法清零,當計時器計數超過設定的數值之后,觸發定時器溢出中斷,此時數據即接收完畢
ID:1082596 發表于 2023-6-7 20:06
xuyaqi 發表于 2023-6-7 18:27
在串口中斷里應該只處理數據接收,LED處理放在main循環里,不要因為LED處理影響數據接收。

判斷和LED處理已放進主循環,并且僅判斷一個字節。
仍只有部分數據led1可正常亮起,如ff.fb等
請問這是什么原因呢?我該如何解決嘞。求大佬指點
這是修改后的程序
void main()
{       
        UART_init(); //串口初始化
        while(1)
        {  
                if(num1==0x5A)
                {   led1=0;  //第一個字節對了之后led1亮
                }
                else led1=1;
       
        }       
}

void UART() interrupt 4
{         
        while(!RI);        //檢測是否接收完成
                RI = 0;       
                num1 = SBUF;
                       
}
ID:94031 發表于 2023-6-7 18:27
在串口中斷里應該只處理數據接收,LED處理放在main循環里,不要因為LED處理影響數據接收。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品人伦一区二区三区蜜桃网站 | 欧美国产视频一区二区 | 欧美日韩亚洲系列 | 久久午夜视频 | 日韩在线 | 请别相信他免费喜剧电影在线观看 | 欧美一级大片免费观看 | 久久成人精品 | 波多野结衣在线观看一区二区三区 | 欧美中文在线 | 久久精品国产久精国产 | 欧美理论 | av黄色在线| 久久精品国产久精国产 | 草久久久| 碰碰视频 | 欧美一区二区三区视频在线观看 | 欧美一级网站 | 国产传媒| 免费av在线网站 | 电影午夜精品一区二区三区 | 久久中文字幕一区 | 日韩一区二区精品 | 国产精品久久久久久久免费观看 | av天天操| 成人在线观看免费爱爱 | 亚洲精品乱码久久久久久久久久 | 亚洲国产高清高潮精品美女 | 国产精品一区二 | 红色av社区 | 狠狠狠色丁香婷婷综合久久五月 | 天堂网av在线 | 一级片免费网站 | 久草免费在线视频 | 欧美激情在线播放 | av一级毛片| 久久99国产精品 | 国产成人精品一区 | 色伊人网 | 亚洲精品亚洲人成人网 | 波多野结衣中文字幕一区二区三区 |