极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25156|回复: 6

求助,怎么让串口只打印一次数据

[复制链接]
发表于 2018-8-4 23:02:25 | 显示全部楼层 |阅读模式
在写 Serial.print串口输出时它一直在输出数据,有没有什么办法让它每只输出一次数据,直到下次Serial.print输出命令再输出一次数据
回复

使用道具 举报

发表于 2018-8-5 08:27:04 | 显示全部楼层
看你Serial.print放的位置,如果放在 if (Serial.available()){}中,则是串口有变化则打印。
回复 支持 反对

使用道具 举报

发表于 2018-8-5 10:06:16 | 显示全部楼层
自己用判断语句加一个判断条件就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-5 10:17:30 | 显示全部楼层
林定祥 发表于 2018-8-5 08:27
看你Serial.print放的位置,如果放在 if (Serial.available()){}中,则是串口有变化则打印。

/****************************************************************************

按键控制LED的,按一次开,按一次关


*****************************************************************************/
int kaiguan=3;//连接开关到IO3
int LED=13;//连接LED到13(实际上UNO等版本已经有了)
int onoff=0;//设定一个变量用于记录开关被按下了偶数还是奇数次,按一次,为奇数次,=1;两下就是偶数次,=0
void setup()
{
  pinMode(3,INPUT);
  pinMode(13,OUTPUT);
  Serial.begin(9600);
}
void loop(){
  if(digitalRead(3)==HIGH){
    if (onoff==0){
    onoff=1;}
  else{onoff=0;}//记录开关被按下的次数部分
}
if(onoff==0)
{digitalWrite(LED,HIGH);
Serial.println("LED ON");
}

  else{
    digitalWrite(LED,LOW);
   Serial.println("LED OFF");
  
  }
}

//

您好,我不是很懂,我现在就是想,开关按一下,串口就打印一次数据,应该怎么改呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-5 10:19:15 | 显示全部楼层
弘毅 发表于 2018-8-5 10:06
自己用判断语句加一个判断条件就好了

我不是很懂,我现在就是想,开关按一下,串口就打印一次数据,应该怎么改呢
回复 支持 反对

使用道具 举报

发表于 2018-8-5 19:18:01 | 显示全部楼层
代码类似点led,你可以参考这个帖子。LED变成串口输出就可以。
http://www.geek-workshop.com/thread-9471-1-1.html
回复 支持 反对

使用道具 举报

发表于 2018-8-5 21:44:10 | 显示全部楼层
本帖最后由 cuiqbo 于 2018-8-5 21:50 编辑

void loop(){

if(digitalRead(3)==HIGH){

      if(!onoff &!digitalRead(LED)){ digitalWrite(LED,HIGH); Serial.println("LED ON");onoff=1; }
      if(onoff & digitalRead(LED)) {digitalWrite(LED,LOW);   Serial.println("LED OFF");  onoff=0;  }
}
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-15 06:59 , Processed in 0.046185 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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