我目前正在使用C语言和一个微控制器工作,为了通过蓝牙传输阅读,我必须将其作为uint8发送。读数目前是浮点数的形式。我一直在尝试思考如何做到这一点,然后能够在接收端将其转换回浮点数,但没有想法。我受到限制,因为我不能“T不能使用定制结构或任何结构,因为它必须在UINT8中进行发送。有什么建议吗?我已经尝试了一些事情,但没有得到很远,所以我没有太多的显示它
cqoc49vn1#
C语言中的任何类型都可以用字符指针遍历,在所有合理的编译器上,uint8_t都是字符类型。
uint8_t
const uint8_t* ptr = (const uint8_t*)&some_var; for(size_t i=0; i<sizeof(some_var); i++) { send_byte(ptr[i]); }
但是请记住,您的CPU字节顺序可能与网络字节顺序不匹配,在这种情况下,您需要在发送之前交换字节顺序。
1条答案
按热度按时间cqoc49vn1#
C语言中的任何类型都可以用字符指针遍历,在所有合理的编译器上,
uint8_t
都是字符类型。但是请记住,您的CPU字节顺序可能与网络字节顺序不匹配,在这种情况下,您需要在发送之前交换字节顺序。