![]() |
發(fā)布時間: 2022-7-23 15:27
正文摘要:各位大佬們好,最近在學(xué)習(xí)modbus通信協(xié)議,廢了老大勁終于把數(shù)據(jù)從傳感器里面讀出來了,但是卡在數(shù)據(jù)處理這一步了處理方法說明書上寫的很詳細,可是這部分代碼實在是不會寫,希望有大佬指點一二。 比如這個例子,讀 ... |
Hephaestus 發(fā)表于 2022-7-25 17:57 主要是樓主把 66 66 7b 42 寫成 66 66 42 7B 造成還原錯誤,數(shù)據(jù)正常后還原也正常了,62.85。 ![]() |
xuyaqi 發(fā)表于 2022-7-23 19:52 樓主都說了“66 66 42 7B”是62.85的意思,你搞個2.7e23是來搞笑的嗎? |
愛馬達的小電動 發(fā)表于 2022-7-24 14:38 總要把代碼和報錯內(nèi)容貼出來吧?你什么都不說別人也都不是算命的。 |
xuyaqi 發(fā)表于 2022-7-23 19:25 非常感謝解惑 |
Hephaestus 發(fā)表于 2022-7-23 18:48 謝謝指導(dǎo),這樣確實可以一步到位了,還有個問題是怎么把接收到不斷變化的值放到ch【】里面處理啊,我自己寫的一直報錯,不知道該怎么修改了 |
xuyaqi 發(fā)表于 2022-7-23 19:52 人家都舉例“66 66 42 7B”的含義是62.85了,你還蒸熟的鴨子只剩下嘴硬了有意思嗎? |
Hephaestus 發(fā)表于 2022-7-23 19:32 這跟對方傳感器傳來的數(shù)據(jù)順序有關(guān)。 |
xuyaqi 發(fā)表于 2022-7-23 19:25 你把大小端弄反了。 |
4個字節(jié) 66 66 42 7B 轉(zhuǎn)為浮點數(shù)為 2.7184266e+23,參考程序:
![]() |
根本就不用算啊!上面f=ch一句話就轉(zhuǎn)過去了。以上代碼用MinGW驗證通過。 不過要注意的是x86本身是小端,C51編譯器按大端保存超過1字節(jié)的數(shù)據(jù),所以ch[4]里面的數(shù)據(jù)順序要反過來。 |
Powered by 單片機教程網(wǎng)