代码
void setup() {
Serial.begin(9600);
int r = 0;
Serial.print("How long\n");
int lng = Serial.read();
while (Serial.available() == 0) {
//Empty
}
char string[] = {'0'};
while (r < 62) {
if(r == 10) {
string[0] += 7;
}
if(r ==36) {
string[0] += 6;
}
Serial.println(string);
r ++;
string[0] ++;
}
Serial.print(lng, DEC);
}
void loop() {
}
好的,所以第一个问题是 line Serial.print(lng, DEC);
。它在串行监视器上打印出 -1。如果我在 3 期间输入一个 3 int lng = Serial.read()
,我怎样才能让它返回输入?
其次,我如何将字符串的长度设置为 lng 并确保每个空格都以 a 开头0
而不是空白?
最终工作代码:
void setup() {
Serial.begin(9600);
int r = 0;
Serial.print("How long\n");
int lng;
while (1)
if (Serial.available() > 0)
{
lng = Serial.read();
break;
}
int l = (lng - 48);
char string[l];
for (int i = 0; i < l; i++)
string[i] = '0';
while (r < 62) {
if (r == 10) {
string[0] += 7;
}
if (r == 36) {
string[0] += 6;
}
Serial.println(string);
r++;
string[0]++;
}
char eof = '/';
Serial.println(eof);
}
void loop() {
}
char eof = '/' 是因为我有一个与 Arduino 对话的 Python 脚本。的打印eof
是一个标志,让 Python 知道它已完成打印并关闭串行连接。