傳送與接收float資料

2021-07-02 04:02:28 字數 668 閱讀 5619

在寫硬體程式的時候,經常遇到要通過串列埠、can匯流排等傳送float型別的資料。由於mcu是以單個位元組為單位來傳送資料的,所以在遇到要傳送float,double這種占用多個位元組的資料型別的資料時,如果對指標的概念理解不到位,就很難實現。以float型別的資料為例,我的方法如下:

傳送:

void floatput(float fdat,unsigned

char *buf,unsigned

char pos)

這個函式的功能是將float型別的資料fdat存放到unsigned char型別的陣列buf中,儲存在buf的第pos個位元組開始的連續四個位址。

接收:

float *fp = (float *)&rcvbuffer[0];

rcvfloatdata1 = *fp;

rcvfloatdata2 = *(fp+1);

接收時比較簡單。假設收到的資料儲存在rcvbuffer中,從第乙個位元組開始有連續兩個浮點數,則依次通過float型別的指標取出資料即可

上述**不僅可以用於mcu的串列埠間通訊,can匯流排、mcu與上位機的通訊都可以使用這種方法,前提是保證資料型別的位元組長度一致,如float型別資料,收發雙發都得是4個位元組。同理,double型別、short型別、long型別等資料,都可以用這種方法。

網絡卡傳送與接收資料報

網絡卡如何傳送資料報 ip報文可以看作乙個包。linux網絡卡驅動程式,將ip包新增14位元組的mac包頭,構成mac包。mac包中含有傳送端和接收端的mac位址資訊。既然是驅動程式建立的mac包頭資訊,當然可以隨便輸入位址資訊的。主機偽裝就是這麼實現的。驅動程式將mac包拷貝到網絡卡晶元內部的緩衝...

android開發tcp傳送與接收

這段時間在研究tcp通訊,這裡分享一下 private wifimanager manager 組播鎖 private wifimanager.multicastlock lock tcp連線的伺服器ip和port private static string tcp server private s...

php 傳送與接收流檔案

php 傳送與接收流檔案 sendstreamfile.php 把檔案以流的形式傳送 receivestreamfile.php 接收流檔案並儲存到本地 sendstreamfile.php php 傳送流檔案 param string url 接收的路徑 param string file 要傳送...