我需要向物联网发送数据,数据需要以字节为单位
要通过物联网来回发送数据,您需要使用字节
一些函数返回带有 2 个小数的浮点数
23.56 或 4.32
我很难转换我的浮点数并将其保存到我的数据的可变 uint8_t 中。我必须找到如何转换我的浮点变量
我有一个这样的循环:
/*
NOTE:
uinit8_t mydata[64];
byte nbMaxCapteurs = 10;
mesMesures[i][mesCapteur[i].idDuCapteur].valeur => this is a float
*/
memset(mydata, 0xFF, 64);
uint8_t * ptr = mydata;
for (byte i = 0; i < nbMaxCapteurs; i++) {
if (mesCapteur[i].actif) {
*ptr = mesMesures[i][mesCapteur[i].idDuCapteur].valeur;
ptr += 15; // How to know the number of step to move the pointer
if (i < nbCapteurActif + 1) {
*ptr = 0x2C; // virgule
ptr += sizeof(char);
}
} else {
*ptr = 0x2C; // virgule pour les capteurs inactifs
ptr += sizeof(char);
}
}
*ptr = '00'; // Close \0
ptr += sizeof(char);
printData();
我对这种转换很陌生。真正的问题在这里:
*ptr = mesMesures[i][mesCapteur[i].idDuCapteur].valeur;
printData 打印:
04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C 18 FF FF FF FF FF FF FF FF FF FF FF FF FF 2C CB FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C
但它至少应该打印这个:
34 2E 33 32 FF FF FF FF FF FF FF FF FF FF FF 2C 18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C CB FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 2C
因为34 2e 33 32
等于 4.32。
我不明白也不知道如何“合并”和转换浮点值。然后你能帮我按照浮动的大小移动指针吗?
我真的坚持这个话题,我非常感谢你的帮助。