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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機C語言modbus通信協議數據處理問題

[復制鏈接]
跳轉到指定樓層
樓主
各位大佬們好,最近在學習modbus通信協議,廢了老大勁終于把數據從傳感器里面讀出來了,但是卡在數據處理這一步了處理方法說明書上寫的很詳細,可是這部分代碼實在是不會寫,希望有大佬指點一二。
比如這個例子,讀到的數據順序為 66 66 42 7B,需要將其轉為二進制后分成1位符號位、8位指數位和23位尾數,然后分別化為整數后再計算



如果有大佬愿意指點一下,小弟感激不盡

f10aee1eabe52aa068369bcb903e5de.png (360.25 KB, 下載次數: 53)

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

使用道具 舉報

沙發
ID:883242 發表于 2022-7-23 18:48 | 只看該作者
  1. int main(int argc, char *argv[]) {
  2.         float *f;
  3.         uint8_t ch[4]={0x66,0x66,0x7b,0x42};
  4.         f=ch;
  5.         printf("%f ",*f);
  6.         return 0;
  7. }
復制代碼

根本就不用算啊!上面f=ch一句話就轉過去了。以上代碼用MinGW驗證通過。

不過要注意的是x86本身是小端,C51編譯器按大端保存超過1字節的數據,所以ch[4]里面的數據順序要反過來。
回復

使用道具 舉報

板凳
ID:94031 發表于 2022-7-23 19:25 | 只看該作者
4個字節 66 66 42 7B 轉為浮點數為 2.7184266e+23,參考程序:

回復

使用道具 舉報

地板
ID:883242 發表于 2022-7-23 19:32 | 只看該作者
xuyaqi 發表于 2022-7-23 19:25
4個字節 66 66 42 7B 轉為浮點數為 2.7184266e+23,參考程序:

你把大小端弄反了。
回復

使用道具 舉報

5#
ID:94031 發表于 2022-7-23 19:52 | 只看該作者
Hephaestus 發表于 2022-7-23 19:32
你把大小端弄反了。

這跟對方傳感器傳來的數據順序有關。
回復

使用道具 舉報

6#
ID:883242 發表于 2022-7-23 19:54 | 只看該作者
xuyaqi 發表于 2022-7-23 19:52
這跟對方傳感器傳來的數據順序有關。

人家都舉例“66 66 42 7B”的含義是62.85了,你還蒸熟的鴨子只剩下嘴硬了有意思嗎?
回復

使用道具 舉報

7#
ID:375889 發表于 2022-7-24 14:38 | 只看該作者
Hephaestus 發表于 2022-7-23 18:48
根本就不用算啊!上面f=ch一句話就轉過去了。以上代碼用MinGW驗證通過。

不過要注意的是x86本身是小端 ...

謝謝指導,這樣確實可以一步到位了,還有個問題是怎么把接收到不斷變化的值放到ch【】里面處理啊,我自己寫的一直報錯,不知道該怎么修改了
回復

使用道具 舉報

8#
ID:375889 發表于 2022-7-24 14:39 | 只看該作者
xuyaqi 發表于 2022-7-23 19:25
4個字節 66 66 42 7B 轉為浮點數為 2.7184266e+23,參考程序:

非常感謝解惑
回復

使用道具 舉報

9#
ID:883242 發表于 2022-7-24 22:32 | 只看該作者
愛馬達的小電動 發表于 2022-7-24 14:38
謝謝指導,這樣確實可以一步到位了,還有個問題是怎么把接收到不斷變化的值放到ch【】里面處理啊,我自己 ...

總要把代碼和報錯內容貼出來吧?你什么都不說別人也都不是算命的。
回復

使用道具 舉報

10#
ID:883242 發表于 2022-7-25 17:57 | 只看該作者
xuyaqi 發表于 2022-7-23 19:52
這跟對方傳感器傳來的數據順序有關。

樓主都說了“66 66 42 7B”是62.85的意思,你搞個2.7e23是來搞笑的嗎?
回復

使用道具 舉報

11#
ID:94031 發表于 2022-7-25 19:12 | 只看該作者
Hephaestus 發表于 2022-7-25 17:57
樓主都說了“66 66 42 7B”是62.85的意思,你搞個2.7e23是來搞笑的嗎?

主要是樓主把 66 66 7b 42 寫成 66 66 42 7B 造成還原錯誤,數據正常后還原也正常了,62.85。

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品一区二区三区网站观看 | 欧美一区二区在线播放 | 高清不卡毛片 | 精品少妇v888av| 亚州精品天堂中文字幕 | a级免费观看视频 | 欧美日韩一区二区三区视频 | 毛片免费在线观看 | 久久久精品综合 | 免费日本视频 | 色综合一区二区三区 | 午夜影院网站 | 午夜精品久久久久久久 | 五月天婷婷久久 | 日韩视频专区 | 中文字幕在线免费观看 | 九色视频网站 | 日韩电影中文字幕在线观看 | 国产乱人伦精品一区二区 | 在线视频日韩 | 天天射天天干 | 九九九视频在线 | 日韩三级一区 | 自拍偷拍小视频 | 成人免费久久 | 久久国产精品视频 | 99亚洲精品 | 日韩电影免费在线观看中文字幕 | 色视频成人在线观看免 | 国产日本精品视频 | 99在线观看视频 | 亚洲免费在线观看 | 国产中文一区二区三区 | 日韩一区二区在线视频 | 黄片毛片免费观看 | 国产精品永久免费 | aa级毛片毛片免费观看久 | 久久不卡日韩美女 | 国产精品久久九九 | 日韩视频高清 | 日本精品在线播放 |