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

標題: 請教NRF24L01怎么傳輸MPU6050數據?float類型 [打印本頁]

作者: 阿杜666    時間: 2019-10-28 19:45
標題: 請教NRF24L01怎么傳輸MPU6050數據?float類型
已經完成兩個NRF24L01可以發送u8的數據,接收u8的數據。
但是我想利用NRF24L01發送角度他是float類型的。
產生角度得是MPU6050.
我只會把他強制轉換例如:
u8 hw[0];float yaw;
hw[0]=(u8)yaw;
把hw[0]放到NRF24L01發送的函數中,想把他發送的u8數據轉換成float;
float acc[3];u8 hw[0];
acc[0]=float(hw[0]);
將acc[0]放到printf函數中,可是他只是加了小數點(1.0000...2.0000)這樣。
請大佬指教一下,怎么傳輸MPU6050數據?
謝謝!

作者: bai_yun_123    時間: 2019-10-29 09:02
單片機應該是可以直接發送和輸出float類型的,或者你把數值*100000,這樣應該是整形,傳輸過去后再做處理
作者: 飛機翻筋斗    時間: 2019-10-29 09:09
放大,然后分數組存取
作者: xuyaqi    時間: 2019-10-29 09:46
最簡單辦法,把浮點數擴大變成整數發送,收到后縮小同樣的倍數。
作者: 阿杜666    時間: 2019-10-29 11:29
bai_yun_123 發表于 2019-10-29 09:02
單片機應該是可以直接發送和輸出float類型的,或者你把數值*100000,這樣應該是整形,傳輸過去后再做處理

可以舉個例子嗎?
作者: 阿杜666    時間: 2019-10-29 11:30
xuyaqi 發表于 2019-10-29 09:46
最簡單辦法,把浮點數擴大變成整數發送,收到后縮小同樣的倍數。

可以舉個例子嗎?
作者: 阿杜666    時間: 2019-10-29 11:31
飛機翻筋斗 發表于 2019-10-29 09:09
放大,然后分數組存取

可以舉個例子嗎?
作者: yzwzfyz    時間: 2019-10-29 16:59
1、浮點數一般有4個字節組成,有規定的次序及格式。
2、如果直接發送浮點數,也就是發送這4個字節。那么接收時必須有辦法準確地按序接收并放置于你的目標浮點數的內存中(變量),不能有錯位。這就需要收發雙方協議一下。
3、假設你收到了一個字節,你如何知道這個字節是不是屬于某個浮點數,它是浮點數中的第幾個字節呢? 這就是為何要進行傳輸協議。

作者: xuyaqi    時間: 2019-10-30 16:45
阿杜666 發表于 2019-10-29 11:30
可以舉個例子嗎?

16位 int整數會用串口發送嗎,先把 int整數分成高8位與低8位,然后串口先發送高八位,再發送低八位,
作者: angmall    時間: 2019-10-30 18:18
用c語言關鍵字union來解決。

union xxx
{
  char c[4];
  float f;
}y;

定義一個“共用體”xxx,y作為“共用體變量”,里面再定義一個char類型的變量數組c[4]和float類型的變量f。

根據union的定義,里面的變量占用同一個內存地址。所以,c[4]和f的內存地址是一樣的,說的再通俗一點,就是c[4]的4個數實際上就是f的四個字節。







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1