通过serial.readString()读进字符串后判断是否为特定字符串-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 502|回复: 4

[未解决] 通过serial.readString()读进字符串后判断是否为特定字符串

[复制链接]
发表于 2022-4-3 07:06 | 显示全部楼层 |阅读模式
求各位老哥大神帮忙解答! 想实现的是在串口输入字符串 然后判断是否为特定字符串(这里是"B") 然后执行

void loop() {      
        if (Serial.available() > 0) {
                String incomingByte = Serial.readString();

                Serial.print("I received: ");
                Serial.print(incomingByte);
                Serial.print("\n");

                if (incomingByte == "B") {
                  ...
                }
               else
                {
                  Serial.print(incomingByte);
                  Serial.print("Pulse train not begin.\n");
                }
        }
}

但我这里输入的是B 却不执行if里面的代码 执行的是else里面的
串口输出如下:
I received: B

B
Pulse train not begin.

求解答 万分感谢!

发表于 2022-4-3 10:21 | 显示全部楼层
String 改成char
发表于 2022-4-3 11:10 | 显示全部楼层
单字节识别直接用char +read就行,串口选择无结束符
 楼主| 发表于 2022-4-3 12:04 来自手机 | 显示全部楼层
XlinliY.Zhang 发表于 2022-4-3 11:10
单字节识别直接用char +read就行,串口选择无结束符

不是单字节的 会用到一串字符 类似”B88”这样 “B”用在if选择 ”88”作为参数
发表于 2022-4-9 23:06 | 显示全部楼层
只有空床敌素秋 发表于 2022-4-3 12:04
不是单字节的 会用到一串字符 类似”B88”这样 “B”用在if选择 ”88”作为参数 ...

可以尝试将读取到的字符串拼接成数组,然后根据数组下标进行判断,我没试过可不可以,你可以试试
String messageString = "Hello World " + String(value++);
char publishMsg[messageString.length() + 1];   
strcpy(publishMsg, messageString.c_str());
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:28 , Processed in 0.111308 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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