バッファに出力されるデータが間違った値になる問題をデバッグしています。u8
カーネル ドライバーから HALにバッファー ( ) 型を送信しています。HAL には、Uint16
このバッファーから値を受け取るバッファーがあります。
//Code to copy BUFFLEN contents from u8 data[BUFFLEN] into uint16_tData ;
uint16_t uint16_tData[BUFFLEN / 2];
float floatdata[BUFFLEN / 2];
uint16_tData
この型キャストを使用して、バッファから float 値を取得しています。
floatdata[index] = (*((float *)((void *)&uint16_tData[index1];
ここで私の質問:floatdata
配列にあるデータをどのように解釈できますか? データがあると言うfloatdata[0] = 53640;
このニブルから float データを解釈するにはどうすればよいですかfloatdata[0]
u8 からの 4 バイトに注意してください --> 配列 uint16_tData の 2 つの要素 --> 配列 floatdata の 1 つの要素。
私は次のような例で知りたかった:
ドライバーから送信される値は次のとおりです。
u8 val1 = 206
u8 val2 = 208
u8 val3 = 120
u8 val4 = 68
HAL では、変換はどのように行われ、ここでどのような値が取得されますか?
uint16_tData[0] = ?
uint16_tData[1] = ?
また、フロートとしてのデータの解釈はどのようになりますfloatdata
か?
floatdata[0] = ?