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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機串口數據接受問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:149043 發表于 2024-6-14 14:03 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
如何把數組接收到的10位字符的數據,只處理第五位和第六位的數據,其他不要

IMG_4985.jpeg (1.36 MB, 下載次數: 23)

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

使用道具 舉報

沙發
ID:366877 發表于 2024-6-14 14:58 | 只看該作者
接收到的數據放到緩沖數組里,要哪一位取哪一位即可。
回復

使用道具 舉報

板凳
ID:276663 發表于 2024-6-14 15:03 | 只看該作者
wdgao 發表于 2024-6-14 14:58
接收到的數據放到緩沖數組里,要哪一位取哪一位即可。

是的,前提是把數據準確的收完,以免取錯位置。從你的數據來看是30 30 30 35 ,ascii就是0005
回復

使用道具 舉報

地板
ID:237471 發表于 2024-6-14 15:44 | 只看該作者
                sbufch[1] = sbufch[2];
                sbufch[2] = sbufch[3];
                sbufch[3] = sbufch[4];
                sbufch[4] = sbufch[5];
                sbufch[5] = sbufch[6];
                sbufch[6] = sbufch[7];
                sbufch[7] = sbufch[8];
                sbufch[8] = sbufch[9];
                sbufch[9] = SBUF;
               
                if(sbufch[1]==0XA0&&sbufch[2]==0X0A)                 //判斷是否為起始頭標志
                {
                        if(sbufch[3]==0X00||sbufch[3]==sbufch[0])                 //判斷是否為起始頭標志
                        {
                                COMMAND();
                        }
                }

這個是一串9個字節的接受判斷,0xa0  0x0a 這2個字節是數據頭,找到后執行COMMAND子程序,想怎么做都可以
回復

使用道具 舉報

5#
ID:961114 發表于 2024-6-14 17:15 | 只看該作者
四串口與電腦收發測試程序,觀方有講解 可以去看看

回復

使用道具 舉報

6#
ID:744809 發表于 2024-6-14 17:26 | 只看該作者
lxh2002 發表于 2024-6-14 15:44
sbufch[1] = sbufch[2];
                sbufch[2] = sbufch[3];
                sbufch[3] = sbufch[4];

這個寫法是否有些啰嗦了,在中斷里面運行這么長的代碼,應該把判斷放到while循環中去,中斷里只進行接收
回復

使用道具 舉報

7#
ID:401564 發表于 2024-6-16 16:07 | 只看該作者
在中斷中只做接收,并存放在緩沖里,在主程序查找就可以
所謂第五個數據,我不確定你這個數據是什么樣子的,是每次都是一樣的長度還是長度都不一樣的?
如果是長度都是一樣的,就在接收的時候存放在數組中,直接引用就可以了
回復

使用道具 舉報

8#
ID:237471 發表于 2024-6-16 21:59 | 只看該作者
Y_G_G 發表于 2024-6-16 16:07
在中斷中只做接收,并存放在緩沖里,在主程序查找就可以
所謂第五個數據,我不確定你這個數據是什么樣子的,是 ...

有道理,我的思路應該不太對,有時間找點資料學習一下,我一直都是自己瞎捉摸寫的
回復

使用道具 舉報

9#
ID:675287 發表于 2024-6-21 12:04 | 只看該作者
這個數據有頭有尾的,每次接受完一包后,直接拿第5和6位就可以了,在接受完一包數后做個標記,主程序判斷這個接收完成標記就處理第五和六的數,處理完成,這個標記清除,同時在產生這個標記直到處理數據完成前串口中斷里面是不能接受數據的。
回復

使用道具 舉報

10#
ID:1126413 發表于 2024-6-21 16:25 | 只看該作者
接受到的數據用數值用數組存起來,buf[n]=
回復

使用道具 舉報

11#
ID:876947 發表于 2024-6-24 11:28 | 只看該作者
有意思,學習了!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区精品 | 国产乱码精品1区2区3区 | 91精品国产综合久久久久久丝袜 | 欧美日韩视频网站 | 黄免费观看视频 | 国产午夜高清 | 久久久久久久香蕉 | 国产精品久久久久久av公交车 | 美女黄网站 | 久久一区二区视频 | 欧美啊v在线观看 | 国产精品美女一区二区 | 成人精品免费视频 | 中文字幕 在线观看 | 欧洲在线视频 | 丝袜毛片| 9999国产精品欧美久久久久久 | 欧美成人免费在线视频 | 日韩精品一区二区三区中文在线 | 国产中文字幕亚洲 | 免费视频一区二区三区在线观看 | 狠狠爱免费视频 | 欧美综合自拍 | 精品一区二区久久久久久久网站 | 不卡视频在线 | 97视频免费 | 欧美三级电影在线播放 | 91欧美| 成人在线视频一区 | 国产一二三视频在线观看 | 日韩三级在线 | 伊人av在线播放 | 9191av| 亚洲一级毛片 | 成人av电影在线 | 亚洲欧美日韩在线不卡 | 久久亚洲一区 | 欧美久久不卡 | 欧美精品成人一区二区三区四区 | 蜜臀久久99精品久久久久久宅男 | 亚洲精品观看 |