|
int data=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)//判断串口有数据
{
data = Serial.parseInt(); //读取串口传入的下一个有效整数
Serial.print("value");
Serial.println(data);
}
if(data>0)
{
for(int n=1;n<=data;n++)
{
Serial.println(n);
}
data=0;
}
}
上面这段程序可以很好的运行,但是添加了一些代码后
int DIR=2;
int CP=3;
int key=5;
int led=14;
float data=0;
void setup()
{
Serial.begin(9600); // 打开串口,设置数据传输速率为9600bps
pinMode(DIR,OUTPUT);
pinMode(CP,OUTPUT);
pinMode(led,OUTPUT);
pinMode(key,INPUT_PULLUP);
digitalWrite(DIR,HIGH);
digitalWrite(CP,HIGH);
digitalWrite(led,LOW);
}
void loop()
{
if (Serial.available() > 0)//判断串口有数据
{
data = Serial.parseFloat(); //读取串口传入的下一个有效整数
Serial.print("value");
Serial.println(data);
}
if(digitalRead(key)==LOW)
{
digitalWrite(led,HIGH);
for(int x=1;x<=data;x++)
{
digitalWrite(CP,LOW);
delay(1);
digitalWrite(CP,HIGH);
delay(1);
Serial.println(x);
delay(3);
}
digitalWrite(led,LOW);
}
}
串口发送数据后无法返回,根据判断 data 值一直为0;
这哪里出现了问题,只是添加了一部分代码,并且关于串口接收、发送部分的代码完全没有改变。
经过多次实验,发现将void setup() 内除 Serial.begin(9600);的代码删除后,串口运行正常。
哪里出错了????求救啊~~~ |
|