C 如何从指针获取值

C 如何从指针获取值,c,pointers,structure,C,Pointers,Structure,我正在使用两个流作为输入的SHT11传感器,必须组合在一起以表示可读信息。假设湿度和温度声明如下: uint8_t humi[3] = {}; uint8_t temp[3] = {}; typedef nx_struct DAT { nx_uint8_t nodeid; nx_uint8_t forwardid; nx_uint8_t destid; nx_uint32_t pktid; nx_uint16_t humi_data; nx_uint16_t temp_data; nx

我正在使用两个流作为输入的SHT11传感器,必须组合在一起以表示可读信息。假设湿度和温度声明如下:

uint8_t humi[3] = {};
uint8_t temp[3] = {};
typedef nx_struct DAT {
nx_uint8_t  nodeid;
nx_uint8_t  forwardid;
nx_uint8_t  destid;
nx_uint32_t pktid; 
nx_uint16_t humi_data;
nx_uint16_t temp_data;
nx_uint16_t intBatt_val;
nx_uint16_t extBatt_val;
nx_uint8_t  rssi_val;
nx_uint32_t total_pkt_num;
nx_uint8_t  immediate_parent_node;
nx_uint32_t node_fail_to_send_count;
nx_uint8_t  fan1_val;
nx_uint8_t  fan2_val;
} DAT;
并由一个指针组合,
ptrFlash

uint8_t* ptrFlash;
在写入数据包的函数中:

ptrFlash = (uint8_t*)&writepkt->humi_data;
ptrFlash[0] = humi[0];
ptrFlash[1] = humi[1];
ptrFlash = (uint8_t*)&writepkt->temp_data;
ptrFlash[0] = temp[0];
ptrFlash[1] = temp[1];
在这种情况下,湿度和温度读数分配正确。如何从这里提取浮点/整数读数?这是来自
writepkt
结构还是
ptrFlash
?writepkt的结构如下:

uint8_t humi[3] = {};
uint8_t temp[3] = {};
typedef nx_struct DAT {
nx_uint8_t  nodeid;
nx_uint8_t  forwardid;
nx_uint8_t  destid;
nx_uint32_t pktid; 
nx_uint16_t humi_data;
nx_uint16_t temp_data;
nx_uint16_t intBatt_val;
nx_uint16_t extBatt_val;
nx_uint8_t  rssi_val;
nx_uint32_t total_pkt_num;
nx_uint8_t  immediate_parent_node;
nx_uint32_t node_fail_to_send_count;
nx_uint8_t  fan1_val;
nx_uint8_t  fan2_val;
} DAT;

您的问题没有提到任何“
float/int
data”,也没有数据格式定义。我们不必翻传感器的数据表就能找到它。发布所有相关信息。很抱歉,我是硬件新手。我已经翻遍了数据表,不知道需要什么样的信息。我只想将信息(应该是16位)提取为float/int进行比较。没有这种格式
int/float
。不是一个就是另一个。浮点数最小为32位。数据表中应详细记录数据表示,因此我相信,一旦您阅读了数据表,您将能够自己回答问题。传感器可能不提供浮点数,而是INT,但这应在数据表中明确说明。还有,请问writepkt的类型是什么?@EugeneSh.:一些传感器/等使用自己的浮点格式。你的问题没有提到任何“
float/int
data”,也没有数据格式定义。我们不必翻传感器的数据表就能找到它。发布所有相关信息。很抱歉,我是硬件新手。我已经翻遍了数据表,不知道需要什么样的信息。我只想将信息(应该是16位)提取为float/int进行比较。没有这种格式
int/float
。不是一个就是另一个。浮点数最小为32位。数据表中应详细记录数据表示,因此我相信,一旦您阅读了数据表,您将能够自己回答问题。传感器可能不提供浮点数,而是INT,但这应在数据表中明确说明。还有,请问writepkt的类型是什么?@EugeneSh.:一些传感器/等使用自己的浮点格式。这很可能是16位。