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

標題: MCU串口如何接收不定長數(shù)據(jù) [打印本頁]

作者: wang元    時間: 2023-9-25 15:24
標題: MCU串口如何接收不定長數(shù)據(jù)
關于MCU串口的接收數(shù)據(jù)有這些問題想問一下各位:
1:在中斷里通過驗證幀頭幀尾來判斷是否接收到完整的一幀數(shù)據(jù),傳輸數(shù)據(jù)時,數(shù)據(jù)幀里有一位和幀尾一樣就無法正常傳輸了,應該如何解決?
2:用stm32有一個IDLE中斷位來接收不定長的數(shù)據(jù),他是怎么判斷數(shù)據(jù)已經(jīng)一幀了?我看網(wǎng)上的例程都是傳字符串,我傳一組16位數(shù)據(jù)包可以嗎實現(xiàn)嗎?(我一直無法實現(xiàn))
3:有什么辦法可以更好地接受固定幀頭幀尾,不定長的數(shù)據(jù)的方法嗎?
4:中斷里是不是不可以有太復雜的程序要跑,要盡快出中斷?
謝謝各位的指導與幫助。

作者: Hephaestus    時間: 2023-9-25 20:04
四個問題其實就是一個問題,如何定協(xié)議,如果走ASCII碼,那么幀頭幀尾的字符不應該出現(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碼方式適合實時性不太好的場合,比如上位機就沒啥實時性。時間間隔適合于實時性很強的設備,比如單片機到單片機通訊。
作者: LaoYuTou    時間: 2023-9-26 08:29
看看modbus是怎么解決這個問題的,modbus應該也算是定長的,但又是不定長的,就是每次發(fā)的幀長度不一定相同,但是他又要求每一幀數(shù)據(jù)的長度。固定幀頭,定好協(xié)議,比方幀頭后就是數(shù)據(jù)長度,數(shù)據(jù)長度是2個字節(jié),那么后面跟著那么長的數(shù)據(jù)就完了。當然超時判斷是最好有的。
作者: aking991    時間: 2023-9-26 08:32
先設定一種超時方法和設定緩存區(qū),然后把接收到有數(shù)據(jù)時即存入到緩存區(qū)中,待超時后再去判斷緩存區(qū)里的數(shù)據(jù),這樣就可以了
作者: fanwei326    時間: 2023-9-26 09:09
aking991 發(fā)表于 2023-9-26 08:32
先設定一種超時方法和設定緩存區(qū),然后把接收到有數(shù)據(jù)時即存入到緩存區(qū)中,待超時后再去判斷緩存區(qū)里的數(shù)據(jù) ...

這種方法最實用
作者: bemc    時間: 2023-9-26 12:41
定通信協(xié)議,每次都要有數(shù)據(jù)長度的信息。
作者: zyftank    時間: 2023-9-26 13:06
可以加個空閑判斷,在接收數(shù)據(jù)后,空閑XX毫秒結束一幀數(shù)據(jù)的傳輸。
作者: Hephaestus    時間: 2023-9-26 14:48
LaoYuTou 發(fā)表于 2023-9-26 08:29
看看modbus是怎么解決這個問題的,modbus應該也算是定長的,但又是不定長的,就是每次發(fā)的幀長度不一定相同 ...

我在沙發(fā)說的就是MODBUS,你該不會是不知道MODBUS有ASC和RTU兩種模式吧?
作者: zhai1995    時間: 2023-9-26 16:39
定時器做個超時標志就可以嘞。
作者: ly1972001    時間: 2023-9-28 09:21
找一個成熟的協(xié)議,就能明白,怎么進行可靠穩(wěn)定的通信。比如188協(xié)議。
作者: 人中狼    時間: 2023-9-28 10:06
純粹的協(xié)議設計問題
作者: zh_junwei    時間: 2023-10-19 10:01
可以檢測串口的空閑時間來判斷一幀完成,只是要用個定時器
作者: 圣博朗西斯    時間: 2023-10-27 13:20
定義個貞的結尾數(shù)據(jù),前一個為校驗數(shù)據(jù),接收到結尾數(shù)據(jù)進行校驗,校驗不對說明數(shù)據(jù)未接收完整繼續(xù)接受
作者: @tangtangtan    時間: 2023-10-27 17:56
直接用空閑中斷就可以




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 青青草av | 国产不卡视频 | 一区在线视频 | 欧美xxxx网站 | 天堂中文在线观看 | 国产乱码精品1区2区3区 | 一级毛片在线播放 | 91av导航 | 国产精品无码专区在线观看 | 一二区视频| www.久久 | 成人在线播放网站 | 国产午夜精品一区二区三区嫩草 | 欧美一区二区三区在线观看视频 | 一级一级毛片免费看 | 欧美高清性xxxxhd | 天天色影视综合 | 蜜桃视频在线观看免费视频网站www | 午夜视频大全 | 国产精品99久久久久久大便 | 日日综合| 秋霞在线一区 | 狠狠干av | 亚洲国产精品成人久久久 | 欧美xxxx色视频在线观看免费 | 一区二区三区国产 | 91国内外精品自在线播放 | 欧产日产国产精品视频 | 一区二区三区四区不卡视频 | 欧美日韩视频在线 | 九九热这里只有精品在线观看 | 天天操天天天 | 请别相信他免费喜剧电影在线观看 | 色综合99 | 日韩福利| 日韩精品一区二区三区中文在线 | 一级特黄视频 | 久久久一二三 | 成人黄色av | 国产高清视频一区 | 在线观看国产视频 |