有没有其他方法解决这个问题呢
时间: 2023-08-21 10:02:44 浏览: 37
可以尝试使用 Arduino 的库函数和数据类型来重写这段代码,以适应 Arduino 的硬件和编程环境。
下面是一个使用 Arduino 库函数和数据类型的示例代码,实现了与原始代码相同的功能:
```
#include <Arduino.h>
class MyArray {
public:
MyArray(int length);
void Input();
void Display();
protected:
byte* alist;
int length;
};
MyArray::MyArray(int leng) {
length = leng;
}
void MyArray::Input() {
alist = new byte[length];
Serial.println("请输入数:");
for (int i = 0; i < length; ++i) {
while (!Serial.available()); // 等待串口接收到数据
alist[i] = Serial.parseInt(); // 读取整数型数据
Serial.print(alist[i]); // 输出输入的数字
Serial.print(" ");
}
Serial.println();
}
void MyArray::Display() {
Serial.print("输入的数组为:");
for (int i = 0; i < length; ++i) {
Serial.print(alist[i]);
Serial.print(" ");
}
Serial.println();
}
void setup() {
Serial.begin(9600);
while (!Serial); // 等待串口连接
int n;
Serial.println("请输入数组长度:");
while (!Serial.available()); // 等待串口接收到数据
n = Serial.parseInt(); // 读取整数型数据
Serial.print("数组长度为:");
Serial.println(n);
MyArray a(n);
a.Input();
a.Display();
}
void loop() {
// do nothing
}
```
这段代码使用了 Arduino 库函数和数据类型,例如 Serial.println()、Serial.available()、Serial.parseInt() 等函数。同时,通过使用 Serial.println() 进行调试输出,方便调试和观察程序运行结果。