我正在通过一个简单的STM32蓝色药丸单片机从雷达上读取一些数据。我有一些用Python和Matlab语言编写的代码示例,并将其翻译成C++。
有一件事我不能正常工作,那就是下面的内容。Python代码:
TDAT_Distance = np.frombuffer(com_obj.read(2), dtype=np.uint16)我收到了一个UINT16的小尾数。TDAT_Distance是np.frombuffer的值从串行读取2个字节并设置数据类型的变量。
在C++中,我尝试将字节读入数组,但没有得到想要的结果。
如有任何提示,我们将不胜感激!
谢谢!
发布于 2021-01-26 19:40:25
如果读操作返回正确对齐并与系统的字节顺序匹配的字节(指针),则可以使用reinterpret_cast<uint16_t *>(com_obj.read(sizeof(uint16_t)));。
这可能不太可能,因此您可以使用正确的值构造一个uint16_t
uint16_t from_le_bytes(const unsigned char * bytes)
{
return bytes[0] | (bytes[1] << 8);
}https://stackoverflow.com/questions/65900198
复制相似问题