Arduino通过串口监视器收发数据

在串口监视器中发送数据,板子收到数据并打印出来。

不需要额外电路,但是板子必须连接电脑,Arduino IDE的串口监视器也需要被打开。

代码

/*
  串口事件

 当新的串口数据到来时,我们会将它添加到一个缓存字符串中。当收到换行符时就将缓存字符串 
 输出到串口监视器并将字符串清空。

 本例程的最好测试方式是使用不断发送NMEA 0183语句的GPS接收器模块

 代码公开。
 */

String inputString = "";         // 缓存字符串
boolean stringComplete = false;  // 是否string已经完成缓存

void setup() {
  // 初始化串口:
  Serial.begin(9600);
  // 将inputString反转200个字符:
  inputString.reserve(200);
}

void loop() {
  // 如果缓存string接收完成:
  if (stringComplete) {
    Serial.println(inputString);
    // 清空String:
    inputString = "";
    stringComplete = false;
  }
}

/*
  SerialEvent在arduino板上的RX引脚收到数据时会被系统自动调用。在系统内部,它是在每次loop函数执行时连带执行的。因此如果再loop使用delay,serialEvent的调用也会被延迟,这样就有可能一次收到>=2个字符。
 */
void serialEvent() {
  while (Serial.available()) {
    // 获取新的字符:
    char inChar = (char)Serial.read();
    // 将它加到inputString中:
    inputString += inChar;
    // 如果收到了换行符,就将一个“旗标”变量设置为true,这样loop函数就知道inputString已经缓存完成了:
    if (inChar == '
') {
      stringComplete = true;
    }
  }
}

难道是并行的程序??

还有,波特率也不会算,I am so vegetable!

参考连接:https://www.kancloud.cn/yundantiankong/arduino_examples/431653

原文地址:https://www.cnblogs.com/lfri/p/11606926.html