我正在调试一个问题,即缓冲区中的数据获取错误值。我将缓冲区(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
使用这种类型转换从缓冲区中获取浮点值:
floatdata[index] = (*((float *)((void *)&uint16_tData[index1];
现在我的问题是:如何解释floatdata
数组中的数据?说我有数据floatdata[0] = 53640;
如何从这个半字节中解释浮点数据floatdata[0]
注意 u8 中的 4 个字节 --> 数组 uint16_tData 的 2 个元素 --> 数组 floatdata 的一个元素。
我想知道一个例子,说:
从驱动程序传输的值是:
u8 val1 = 206
u8 val2 = 208
u8 val3 = 120
u8 val4 = 68
在 HAL 中,转换将如何进行,我将在这里获得什么值?
uint16_tData[0] = ?
uint16_tData[1] = ?
以及如何将数据解释为浮点数floatdata
?
floatdata[0] = ?