欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請問關于單片機串口通信和按鍵的傳輸問題

查看數: 2142 | 評論數: 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-8-8 10:35

正文摘要:

樓主使用串口通信控制從機行為,仿真發現從機行為不穩定,實際燒錄后發現主機單次按鍵傳輸數據次數過多,而且次數不穩定無法確定穩定次數,進行按鍵消抖后也沒法清除這種情況,我想按鍵按下后只傳輸一次數據作為地址 ...

回復

ID:123289 發表于 2020-8-10 13:55
記住:
串行通訊時,如果一個數據串入了,你必須在一個串行周期內將它取走,否由下一個數據來了,它就會被沖掉。
你的程序能不能做到這一點呢?會不會數據來了,你的程序還在某個地方DELAY呢?
ID:812792 發表于 2020-8-10 11:42
知道你用bai的是51核的單片機,但du不知道你用的是哪一種規格型號?K1接的哪根I/O?這根I/O會不會與外部中斷有關?單片機是否開放了外部中斷?會不會因外部中斷的高優先級別導致這種現象的發生?會是增強型的51單片機嗎?如果是,那么K1相關I/O又是如何配置的呢?
ID:804115 發表于 2020-8-10 00:27
核心思想:以按鍵松開作為執行標準。
PS:你那個消抖處理時間也太長了吧!!!
ID:86926 發表于 2020-8-8 14:31
你沒做按鍵按下時長的處理,按下發送完一邊如果你沒及時松開按鍵而程序又進行第二次掃描就會再次發送數據了,你可以試一下不同按下按鍵到放開的時間,你一直按下就會一直發送了。
ID:213173 發表于 2020-8-8 14:25
本帖最后由 wulin 于 2020-8-8 21:20 編輯

void button()
{
        unsigned char k;
        if(!key1||!key2||!key3)
        {
                delay(20);
                if(!key1||!key2||!key3)
                {
                        if(!key1)
                                k=address_one;
                        else if(!key2)
                                k=address_two;
                        else if(!key3)
                                k=address_three;
                        SBUF=k;
                        while(!TI);
                        TI=0;
                        while(!key1||!key2||!key3);
                }
        }
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表