新手小白做的DIY,有bug求大家指导-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1599|回复: 0

[过期] 新手小白做的DIY,有bug求大家指导

[复制链接]
发表于 2021-6-7 13:44 | 显示全部楼层 |阅读模式
老板说的话:就是我发一个指令你,比方说示A10000你就帮我闪10秒后常亮,再发一个指令B0你就帮我关了他

为什么我发A1000led没有亮灭,好像是void serialEvent()函数没执行中断一样

程序:
volatile int comData = 0;
volatile boolean mark = true;
volatile int result = 0 ; //循环总毫秒数
int ledPin = 8;

String inputString = "";
void setup() {
  pinMode(ledPin,OUTPUT);
}

void loop() {

  if(comData >result and mark == true){ //当输入A时
      int start1 = millis();  //millis();返回程序当前运行的毫秒数
      digitalWrite(ledPin,HIGH);  //设置led为高电平
      delay(200);
      digitalWrite(ledPin,LOW);
      int end1 = millis();
      int ms =  end1-start1;    //一次循环的毫秒数
      result = result + ms;    //总秒数
    }else if(mark == false){    //当输入B时
      digitalWrite(ledPin,LOW);
      mark = true;
    }else{
      digitalWrite(ledPin,HIGH);
    }

}
void serialEvent(){ //串口中断函数
  char strchar = (char)Serial.peek(); //读串口缓存中下一个字节
  result = 0;   //初始化循环总毫秒数
  if(strchar == 'A'){
    comData = Serial.parseInt();    //从串口接收数据流中读取第一个有效整数
    }else if(strchar == 'B'){
      mark = false;
      }
  while(Serial.read()>= 0){} //清空缓存
  }

//void serialEvent1(){//串口中断函数
//  while(Serial.available() > 0){
//    char inchar = (char)Serial.read(); //读串口中的下一个字节
//    inputString =  inputString + inchar;  //拼成一个字符串
//  }
}


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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 05:45 , Processed in 0.089610 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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