我正在使用两个流作为输入的SHT11传感器,必须将它们组合在一起以表示可读信息。说湿度和温度声明如下:
uint8_t humi[3] = {};
uint8_t temp[3] = {};
并由指针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];
在这种情况下,湿度和温度读数都正确分配。如何从这里提取float / int读数?这来自writepkt
结构还是ptrFlash
? writepkt的结构如下:
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;