You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino串口接收ASCII格式数值如何转换为INT类型

Arduino串口ASCII数值转整数实现方案

现象原因

你接收端拿到ASCII格式数据,是因为发送端调用的Serial.println()方法会自动将整数转换为对应ASCII字符串输出:比如采集到的数值是489,发送端实际输出的是'4'、'8'、'9'三个ASCII字符外加换行符\n,完全可以直接转换为int类型使用。

方案1:接收端直接解析ASCII(无需修改发送端代码)

直接在接收端拼接收到的ASCII字符,调用内置方法转整数即可,接收端示例代码如下:

const int ledPin = 13; // LED接13号引脚,也可自定义其他引脚
String recvBuffer = ""; // 存储接收到的ASCII字符串
int sensorValue = 0;

void setup() {
  Serial.begin(9600); // 波特率必须和发送端完全一致
  pinMode(ledPin, OUTPUT);
  recvBuffer.reserve(10); // 预分配存储空间,避免内存碎片化
}

void loop() {
  // 持续读取串口数据
  while (Serial.available() > 0) {
    char inChar = (char)Serial.read();
    // 读到换行符代表单次数据发送完成
    if (inChar == '\n') {
      sensorValue = recvBuffer.toInt(); // 直接调用String类方法转整数
      // 自定义LED控制逻辑,示例为数值大于500亮灯,否则灭灯
      digitalWrite(ledPin, sensorValue > 500 ? HIGH : LOW);
      recvBuffer = ""; // 清空缓存等待下一次数据
    } else {
      recvBuffer += inChar; // 拼接收到的字符
    }
  }
}

注意要点

  • 两端波特率、数据位、停止位参数必须完全匹配,否则会出现乱码导致转换失败
  • 若传输距离较长、干扰大,可在发送端自定义简单校验规则,接收端校验通过后再使用数值

方案2:直接传输二进制整数(传输效率更高、稳定性更好)

如果不需要串口数据可读性,可直接传输二进制格式的整数,省去转换步骤,两端修改代码如下:

发送端修改后代码

int sensorValue = 0;
const int input = A0;
void setup () {
  Serial.begin(9600);
  sensorValue = analogRead(input);
  Serial.write(0xAA); // 自定义帧头,用于标识数据起始,避免接收错位
  Serial.write((uint8_t*)&sensorValue, sizeof(sensorValue)); // 直接发送2字节整数的二进制数据
}
void loop () {
}

对应接收端代码

const int ledPin = 13;
int sensorValue = 0;
uint8_t recvBuf[2]; // 存储2字节的整数二进制数据
uint8_t bufIndex = 0;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    uint8_t inByte = Serial.read();
    // 读到帧头则重置缓存索引,准备接收新数据
    if (inByte == 0xAA) {
      bufIndex = 0;
    } else {
      recvBuf[bufIndex++] = inByte;
      // 收满2字节则转换为int类型
      if (bufIndex == 2) {
        memcpy(&sensorValue, recvBuf, 2);
        // LED控制逻辑
        digitalWrite(ledPin, sensorValue > 500 ? HIGH : LOW);
      }
    }
  }
}

内容的提问来源于stack exchange,提问作者Kim Fabian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:45:03