HeartRain 发表于 2013-9-18 17:34:43

串口中断求助

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 灯亮的时间都是一样的这是为什么呢有哪位大神看看

天空树 发表于 2013-9-23 11:36:32

应该是这样的吧,
if(inChar =0)
    {digitalWrite(13,1);
    delay(20);
}
看这个程序,这是发0的结果,当发送0时,将13引脚置1,延时之后并没有进行任何操作,它只会等下一次中断,等于延时根本就没什么用途。你可以再延时之后再写digitalWrite(13,0),这样就有了亮灭变化,才能看出时长,我觉得应该是这样,不过serialEvent()真的可以串口中断吗,我还不知道........

茕兔 发表于 2013-10-31 21:38:22

if判断语句你搞错了吧
if(inChar =0) 改成
if(inChar ==0)才可以
页: [1]
查看完整版本: 串口中断求助