首页 > 解决方案 > 如何使用 Arduino 正确发送无符号长字节?

问题描述

我正在测试与 Arduino 的串行通信,如下所示:

  timeStamp = 0xFFFFFFFF;
  Serial.flush();   
  Serial.write((uint8_t*)timeStamp, 4)

另一方面,我正在用read(fd, &rx, 4)C 程序读取这个字节。我希望读取始终相同的值,但0xffffffff我没有读取,0x370066bf所以解码存在问题。Ps:我已经设置串口读取原始字节,所以没有专门的字节来编码回车或其他特殊字符。

标签: carduino-unoserial-communication

解决方案


我相信你的问题是你Serial.write((uint8_t*)timeStamp, 4)总是从内存中发送 4 个字节,从 address 开始0xFFFFFFFF。这是因为timeStamp不是指针,而是您将其转换为指针。请尝试将地址转换为timeStampSerial.write(((uint8_t*)(&timeStamp)), 4);,看看是否可行。


推荐阅读