求助,怎么让串口只打印一次数据
在写 Serial.print串口输出时它一直在输出数据,有没有什么办法让它每只输出一次数据,直到下次Serial.print输出命令再输出一次数据 看你Serial.print放的位置,如果放在 if (Serial.available()){}中,则是串口有变化则打印。 自己用判断语句加一个判断条件就好了 林定祥 发表于 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:06
自己用判断语句加一个判断条件就好了
我不是很懂,我现在就是想,开关按一下,串口就打印一次数据,应该怎么改呢 代码类似点led,你可以参考这个帖子。LED变成串口输出就可以。
http://www.geek-workshop.com/thread-9471-1-1.html 本帖最后由 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;}
}
页:
[1]