stm32接收报文0x31变成了0xb1
时间: 2023-07-19 16:05:07 浏览: 155
STM32G0x0_单片机_参考手册_2018-11-29.rar
可能是因为数据发送和接收时的字节序不一致所导致的。在 STM32 中,数据是以 Little-Endian 字节序存储的,而在发送数据时,有些设备可能使用 Big-Endian 字节序。如果发送方和接收方的字节序不同,就会导致数据接收时字节序错误。
你可以尝试在 STM32 中对接收到的数据进行字节序转换,将收到的数据从 Big-Endian 转换为 Little-Endian。具体可以使用 `htons()` 或 `ntohs()` 函数来进行转换。例如:
```c
uint16_t data; // 假设接收到的数据是 uint16_t 类型
uint16_t converted_data = ntohs(data); // 将数据从 Big-Endian 转换为 Little-Endian
```
这样,你就可以得到正确的数据了。
阅读全文