想使用while循环点灯循环外却无法读取信息-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1671|回复: 3

[已解决] 想使用while循环点灯循环外却无法读取信息

[复制链接]
发表于 2021-10-19 10:17 | 显示全部楼层 |阅读模式
本帖最后由 啥b 于 2021-10-20 17:02 编辑

[md]void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(12,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  while(Serial.available() > 0) {//检查缓冲区是否有数据,不断循环到缓冲区数据为0

    char ch =+ Serial.read();

    delay(10); //设置缓冲防止数据丢失
   



   

   
   
    }  
   

    if(ch == "open"){
      
      Serial.println("led is open");
      digitalWrite(12,HIGH);
      
      
      }
    else if(ch == "close"){
      Serial.println("led is off");
      digitalWrite(12,LOW);
      
      
      
      
    }
     
   
   
    }[/md]




想使用while循环来实现多字节却在循环外读取不了,不知道是不是哪里缺了什么
发表于 2021-10-19 14:53 | 显示全部楼层
char只能储存单个字符,而且你创建变量也没初值。。。。
 楼主| 发表于 2021-10-20 08:38 | 显示全部楼层
XlinliY.Zhang 发表于 2021-10-19 14:53
char只能储存单个字符,而且你创建变量也没初值。。。。

嘛,初值是没复制上去
所以说换个方法就可以了是吗前辈?
 楼主| 发表于 2021-10-20 08:51 | 显示全部楼层
XlinliY.Zhang 发表于 2021-10-19 14:53
char只能储存单个字符,而且你创建变量也没初值。。。。
  1. void loop() {
  2.   // put your main code here, to run repeatedly:

  3.   while(Serial.available() > 0) {//检查缓冲区是否有数据,不断循环到缓冲区数据为0

  4.     char ch =+ Serial.read();

  5.     delay(10); //设置缓冲防止数据丢失

  6.     Serial.print(ch);
  7.    
  8. }  
  9.    
复制代码


主要是测试的时候用打印出现了输入的字母就没管了



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

本版积分规则

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

GMT+8, 2024-11-28 21:58 , Processed in 0.076335 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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