这个例子演示了SerialEvent()功能。这个功能在loop里调用。串口缓冲区有数据的时候,就把取到的字符加到字符串,直到接收到换行符。由字符组成的字符串显示到串口监视器上,并清空。
Arduino板 |
Circuit |
连接arduino到电脑,打开串口监视器。
/* Serial Event example */ String inputString = ""; // 字符串存储接收的数据 boolean stringComplete = false; //字符是否完整 void setup() { // 初始化串口 Serial.begin(9600); // 保留200字节来存储 : inputString.reserve(200); } void loop() { serialEvent(); //调用 // 收到换行符后显示字符串 if (stringComplete) { Serial.println(inputString); // 清空字符串 inputString = ""; stringComplete = false; } } /* 每次loop循环的时候,当有新数据从硬串口RX到来的时候 SerialEvent就运行了。在loop中使用delay可以延时回应。多字节的数据也是可以的。 */ void serialEvent() { while (Serial.available()) { // 获取新字符 char inChar = (char)Serial.read(); // 添加到inputString: inputString += inChar; // 如果接收到换行符, 设置一个标志 // 主循环中可以调用: if (inChar == '\n') { stringComplete = true; } } }