ESP32接收串口输入的16进制数据,发送一次形如01 3C两个16进制数,01表示标识符,3C需要转变成十进制数,使用arduino实现其代码
时间: 2024-05-14 16:19:00 浏览: 348
ESP32驱动GC9A01圆形屏幕显示图片并按照设定的时间自动更换.zip
下面是ESP32在Arduino IDE中接收串口输入的16进制数据,并将其转换为十进制数后发送01和该数的代码:
```cpp
void setup() {
Serial.begin(115200);
}
void loop() {
if (Serial.available() > 0) {
String input = Serial.readStringUntil('\n'); // 读取串口输入
input.trim(); // 去除输入的前后空格
if (input.length() == 2) { // 确保输入为2个字符
int value = strtol(input.c_str(), NULL, 16); // 将16进制数转换为十进制数
Serial.printf("01 %d\n", value); // 发送01和十进制数
}
}
}
```
注意,在使用此代码之前,需要将ESP32的串口波特率设置为115200。可以在setup函数中使用Serial.begin(115200)实现。并且,在发送数据时需要使用Serial.printf而不是Serial.print,这样可以轻松地将数值转换为16进制格式发送。
阅读全文