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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MCU串口如何接收不定長數(shù)據(jù)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1078313 發(fā)表于 2023-9-25 15:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)于MCU串口的接收數(shù)據(jù)有這些問題想問一下各位:
1:在中斷里通過驗證幀頭幀尾來判斷是否接收到完整的一幀數(shù)據(jù),傳輸數(shù)據(jù)時,數(shù)據(jù)幀里有一位和幀尾一樣就無法正常傳輸了,應(yīng)該如何解決?
2:用stm32有一個IDLE中斷位來接收不定長的數(shù)據(jù),他是怎么判斷數(shù)據(jù)已經(jīng)一幀了?我看網(wǎng)上的例程都是傳字符串,我傳一組16位數(shù)據(jù)包可以嗎實現(xiàn)嗎?(我一直無法實現(xiàn))
3:有什么辦法可以更好地接受固定幀頭幀尾,不定長的數(shù)據(jù)的方法嗎?
4:中斷里是不是不可以有太復(fù)雜的程序要跑,要盡快出中斷?
謝謝各位的指導(dǎo)與幫助。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2023-9-25 20:04 | 只看該作者
四個問題其實就是一個問題,如何定協(xié)議,如果走ASCII碼,那么幀頭幀尾的字符不應(yīng)該出現(xiàn)在數(shù)據(jù)中間,比如“:P82373\r\n”,:是幀頭,\r\n是幀尾,P82373是數(shù)據(jù)。再一種利用時間間隔,3.5個字節(jié)傳輸時間的總線空閑表示數(shù)據(jù)幀間隔,出現(xiàn)這么長時間的空閑,下面來的第一個字符就是幀頭,出現(xiàn)這么長的空閑,剛才收到的最后一個字符就是幀尾,數(shù)據(jù)幀里面可以出現(xiàn)任何字符。ASCII碼方式適合實時性不太好的場合,比如上位機就沒啥實時性。時間間隔適合于實時性很強的設(shè)備,比如單片機到單片機通訊。
回復(fù)

使用道具 舉報

板凳
ID:1080935 發(fā)表于 2023-9-26 08:29 | 只看該作者
看看modbus是怎么解決這個問題的,modbus應(yīng)該也算是定長的,但又是不定長的,就是每次發(fā)的幀長度不一定相同,但是他又要求每一幀數(shù)據(jù)的長度。固定幀頭,定好協(xié)議,比方幀頭后就是數(shù)據(jù)長度,數(shù)據(jù)長度是2個字節(jié),那么后面跟著那么長的數(shù)據(jù)就完了。當(dāng)然超時判斷是最好有的。
回復(fù)

使用道具 舉報

地板
ID:65956 發(fā)表于 2023-9-26 08:32 | 只看該作者
先設(shè)定一種超時方法和設(shè)定緩存區(qū),然后把接收到有數(shù)據(jù)時即存入到緩存區(qū)中,待超時后再去判斷緩存區(qū)里的數(shù)據(jù),這樣就可以了
回復(fù)

使用道具 舉報

5#
ID:404893 發(fā)表于 2023-9-26 09:09 | 只看該作者
aking991 發(fā)表于 2023-9-26 08:32
先設(shè)定一種超時方法和設(shè)定緩存區(qū),然后把接收到有數(shù)據(jù)時即存入到緩存區(qū)中,待超時后再去判斷緩存區(qū)里的數(shù)據(jù) ...

這種方法最實用
回復(fù)

使用道具 舉報

6#
ID:285863 發(fā)表于 2023-9-26 12:41 | 只看該作者
定通信協(xié)議,每次都要有數(shù)據(jù)長度的信息。
回復(fù)

使用道具 舉報

7#
ID:74687 發(fā)表于 2023-9-26 13:06 | 只看該作者
可以加個空閑判斷,在接收數(shù)據(jù)后,空閑XX毫秒結(jié)束一幀數(shù)據(jù)的傳輸。
回復(fù)

使用道具 舉報

8#
ID:883242 發(fā)表于 2023-9-26 14:48 | 只看該作者
LaoYuTou 發(fā)表于 2023-9-26 08:29
看看modbus是怎么解決這個問題的,modbus應(yīng)該也算是定長的,但又是不定長的,就是每次發(fā)的幀長度不一定相同 ...

我在沙發(fā)說的就是MODBUS,你該不會是不知道MODBUS有ASC和RTU兩種模式吧?
回復(fù)

使用道具 舉報

9#
ID:267932 發(fā)表于 2023-9-26 16:39 | 只看該作者
定時器做個超時標志就可以嘞。
回復(fù)

使用道具 舉報

10#
ID:236035 發(fā)表于 2023-9-28 09:21 | 只看該作者
找一個成熟的協(xié)議,就能明白,怎么進行可靠穩(wěn)定的通信。比如188協(xié)議。
回復(fù)

使用道具 舉報

11#
ID:384109 發(fā)表于 2023-9-28 10:06 | 只看該作者
純粹的協(xié)議設(shè)計問題
回復(fù)

使用道具 舉報

12#
ID:675287 發(fā)表于 2023-10-19 10:01 | 只看該作者
可以檢測串口的空閑時間來判斷一幀完成,只是要用個定時器
回復(fù)

使用道具 舉報

13#
ID:1097455 發(fā)表于 2023-10-27 13:20 | 只看該作者
定義個貞的結(jié)尾數(shù)據(jù),前一個為校驗數(shù)據(jù),接收到結(jié)尾數(shù)據(jù)進行校驗,校驗不對說明數(shù)據(jù)未接收完整繼續(xù)接受
回復(fù)

使用道具 舉報

14#
ID:817106 發(fā)表于 2023-10-27 17:56 | 只看該作者
直接用空閑中斷就可以
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美网 | 香蕉一区 | 在线成人 | 四季久久免费一区二区三区四区 | 久久国| av网站在线看 | 国产精品视频在线观看 | 国产成人99| 在线观看中文字幕 | 亚洲九九色 | 日韩精品免费在线观看 | 久久久精彩视频 | 97伦理影院 | 国产精久久久久久 | 激情在线视频网站 | 精品入口麻豆88视频 | av免费在线播放 | 欧美精品一区二区三区在线 | 在线视频 亚洲 | 国外成人在线视频网站 | 国产精品成人一区二区 | 91视频在线观看 | 中文字幕在线视频免费视频 | 日本午夜一区二区三区 | 欧美成人一级 | 日本精品免费 | 精品九九久久 | 精品视频一区二区三区在线观看 | 亚洲欧美日韩久久久 | 免费在线观看黄视频 | 九色91视频 | 久久一二区 | 欧美一区日韩一区 | 精品欧美一区二区三区免费观看 | 成人欧美一区二区 | 亚洲另类春色偷拍在线观看 | 亚洲444kkkk在线观看最新 | 久久久久亚洲精品 | 开操网 | 亚洲二区在线 | 日本视频免费观看 |