以下函数允许你从 Serial 读取以单个 length 字节为前缀的二进制消息:
read_length_prefixed_serial.cpp
#include <Arduino.h>
void setup() {
Serial.begin(115200);
}
void HandleMessage(String msg) {
// TODO:处理消息的代码放在这里。
// See https://techoverflow.net/2022/11/15/how-to-print-string-as-sequence-of-hex-bytes-in-arduino/
// 有关如何将消息打印为十六进制字节序列的示例。
}
void ReadMessageFromSerial() {
// 等待直到 Serial 上有长度字节可用
while (Serial.available() == 0);
// 读取消息长度
int length = Serial.read();
// 读取消息的其余部分
String message = "";
for (int i = 0; i < length; i++) {
while (Serial.available() == 0);
message += char(Serial.read());
}
// 处理消息
HandleMessage(message);
}
void loop() {
ReadMessageFromSerial();
}
按类别查看类似文章:
Allgemein Arduino Electronics Embedded
如果这篇文章对您有帮助,请考虑请我喝杯咖啡或通过 PayPal 捐款,以支持 TechOverflow 上新文章的研究与发布