我正在通过一个简单的 STM32 蓝色药丸 MCU 从雷达读取一些数据。 我有一些用 Python 和 Matlab 编写的代码示例并将其翻译成 C++。
我无法正常工作的一件事是以下位。 Python代码:
TDAT_Distance = np.frombuffer(com_obj.read(2), dtype=np.uint16)
我收到了一个 UINT16 小端。 TDAT_Distance 是变量 np.frombuffer 的值从串行读取 2 个字节并设置数据类型。
在 C++ 中,我尝试将字节读入数组,但没有得到预期的结果。
任何提示将不胜感激!
谢谢!
答案 0 :(得分:0)
如果读取返回(指向)正确对齐且与系统字节序匹配的字节,您可以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);
}