极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10808|回复: 2

串口中断求助

[复制链接]
发表于 2013-9-18 17:34:43 | 显示全部楼层 |阅读模式
String comdata ="";
int  mark = 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)才可以
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 06:43 , Processed in 0.035685 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表