串口中断求助
String comdata ="";intmark = 0;
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(38400);
}
void loop()
{
digitalWrite(13,0);
delay(1000);
}
void serialEvent()//串口中断函数
{
while (Serial.available())
{
char inChar=Serial.read();
Serial.println(inChar);
// Serial.println(comdata.length());//输出数据的长度
// for(int a=1;a>0;a--)
if(inChar =0)
{digitalWrite(13,1);
delay(20);
}
else{
if(inChar =1)
{digitalWrite(13,1);
delay(2000);
}
}
//digitalWrite(13,0);
//delay(2000);
}
} 不管我发1 还是0 灯亮的时间都是一样的这是为什么呢有哪位大神看看 应该是这样的吧,
if(inChar =0)
{digitalWrite(13,1);
delay(20);
}
看这个程序,这是发0的结果,当发送0时,将13引脚置1,延时之后并没有进行任何操作,它只会等下一次中断,等于延时根本就没什么用途。你可以再延时之后再写digitalWrite(13,0),这样就有了亮灭变化,才能看出时长,我觉得应该是这样,不过serialEvent()真的可以串口中断吗,我还不知道........ if判断语句你搞错了吧
if(inChar =0) 改成
if(inChar ==0)才可以
页:
[1]