1

データを double として取得したいので、その後、データを uint8_t 配列として送信します。だから私は2つのステップを決めました.Steps;

1-最初のステップ : uint8_t への倍精度

#include <stdint.h>
#include <stdio.h>
#include <string.h>
void float2Bytes(double val,uint8_t* bytes_array);

int main(void) {
    double b=1690.000000;
    uint8_t message[1024];
    float2Bytes(b,&message[0]);
    int ii;
    for (ii=0; ii<8; ii++) 
        printf ("byteS %d is %02x\n", ii, message[ii]);
    return 0;
}

void float2Bytes(double val,uint8_t* bytes_array){
    // Create union of shared memory space
    union {
        double double_variable;
        uint8_t temp_array[8];
    } u;
    // Overite bytes of union with float variable
    u.double_variable = val;
    // Assign bytes to input array
    memcpy(bytes_array, u.temp_array, 8);
}

2 秒のステップ: uint8_t 配列から Double へ

この段階でアドバイスいただけますか?どのようにできるのか ?そして、最初の段階でエラーがあるかどうかを調べていただけますか。?

ありがとうございました。

4

2 に答える 2