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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2895|回復: 13
收起左側

MCU串口如何接收不定長數據

  [復制鏈接]
ID:1078313 發表于 2023-9-25 15:24 | 顯示全部樓層 |閱讀模式
關于MCU串口的接收數據有這些問題想問一下各位:
1:在中斷里通過驗證幀頭幀尾來判斷是否接收到完整的一幀數據,傳輸數據時,數據幀里有一位和幀尾一樣就無法正常傳輸了,應該如何解決?
2:用stm32有一個IDLE中斷位來接收不定長的數據,他是怎么判斷數據已經一幀了?我看網上的例程都是傳字符串,我傳一組16位數據包可以嗎實現嗎?(我一直無法實現)
3:有什么辦法可以更好地接受固定幀頭幀尾,不定長的數據的方法嗎?
4:中斷里是不是不可以有太復雜的程序要跑,要盡快出中斷?
謝謝各位的指導與幫助。
回復

使用道具 舉報

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

使用道具 舉報

ID:1080935 發表于 2023-9-26 08:29 | 顯示全部樓層
看看modbus是怎么解決這個問題的,modbus應該也算是定長的,但又是不定長的,就是每次發的幀長度不一定相同,但是他又要求每一幀數據的長度。固定幀頭,定好協議,比方幀頭后就是數據長度,數據長度是2個字節,那么后面跟著那么長的數據就完了。當然超時判斷是最好有的。
回復

使用道具 舉報

ID:65956 發表于 2023-9-26 08:32 | 顯示全部樓層
先設定一種超時方法和設定緩存區,然后把接收到有數據時即存入到緩存區中,待超時后再去判斷緩存區里的數據,這樣就可以了
回復

使用道具 舉報

ID:404893 發表于 2023-9-26 09:09 | 顯示全部樓層
aking991 發表于 2023-9-26 08:32
先設定一種超時方法和設定緩存區,然后把接收到有數據時即存入到緩存區中,待超時后再去判斷緩存區里的數據 ...

這種方法最實用
回復

使用道具 舉報

ID:285863 發表于 2023-9-26 12:41 | 顯示全部樓層
定通信協議,每次都要有數據長度的信息。
回復

使用道具 舉報

ID:74687 發表于 2023-9-26 13:06 | 顯示全部樓層
可以加個空閑判斷,在接收數據后,空閑XX毫秒結束一幀數據的傳輸。
回復

使用道具 舉報

ID:883242 發表于 2023-9-26 14:48 | 顯示全部樓層
LaoYuTou 發表于 2023-9-26 08:29
看看modbus是怎么解決這個問題的,modbus應該也算是定長的,但又是不定長的,就是每次發的幀長度不一定相同 ...

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

使用道具 舉報

ID:267932 發表于 2023-9-26 16:39 | 顯示全部樓層
定時器做個超時標志就可以嘞。
回復

使用道具 舉報

ID:236035 發表于 2023-9-28 09:21 | 顯示全部樓層
找一個成熟的協議,就能明白,怎么進行可靠穩定的通信。比如188協議。
回復

使用道具 舉報

ID:384109 發表于 2023-9-28 10:06 | 顯示全部樓層
純粹的協議設計問題
回復

使用道具 舉報

ID:675287 發表于 2023-10-19 10:01 | 顯示全部樓層
可以檢測串口的空閑時間來判斷一幀完成,只是要用個定時器
回復

使用道具 舉報

ID:1097455 發表于 2023-10-27 13:20 | 顯示全部樓層
定義個貞的結尾數據,前一個為校驗數據,接收到結尾數據進行校驗,校驗不對說明數據未接收完整繼續接受
回復

使用道具 舉報

ID:817106 發表于 2023-10-27 17:56 | 顯示全部樓層
直接用空閑中斷就可以
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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