如何使用 Arduino 从 Serial 读取长度前缀二进制消息
以下函数允许你从 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();
}Check out similar posts by category:
Allgemein, Arduino, Electronics, Embedded
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow