这个例子中我们使用运算符来分辨字符类型。这对于检查字符是否是ASCII或者大写字母或是数字或者标点符号等很有用。可供选择的项覆盖了多种情景,下面的程序中进行演示。每一个通过IDE串口发送到控制器的字符都被程序解析,返回所有可能获取到的信息。单个字符可能触发几种情况,所以你可能从一个输入中得到多个答案。
可用的运算符有
isAlphaNumeric() 文字数字 isAlpha() 字母 isAscii() ASCII码 isWhitespace() 空格符 isControl() 控制符 isDigit() 数字 isGraph() 非空格符 isLowerCase() 小写字母 isPrintable() 可打印的 isPunct() 标点符号 isSpace() 空格符 isUpperCase() 大写字母 isHexadecimalDigit() 有效的十六进制数字 (例如 0 - 9, a - F, or A - F)
OCROBOT控制器 |
USB线 |
此例程没有电路图,用USB线把控制器连到电脑并且打开IDE的串口监视器就行了,
打开串口监视器,一次输入一个字符,发送,查看结果。
/* Character analysis operators */ void setup() { Serial.begin(9600); // 打开串口 while (!Serial) { ; //等待串口连接,只有使用32U4核心的控制器需要这一步 } Serial.println("send any byte and I'll tell you everything I can about it"); //介绍: Serial.println(); } void loop() { if (Serial.available() > 0) { // 接收数据: int thisChar = Serial.read(); Serial.print("You sent me: \'"); // 显示发送的字符: Serial.write(thisChar); Serial.print("\' ASCII Value: "); Serial.println(thisChar); if (isAlphaNumeric(thisChar)) { // 分析发送的字符: Serial.println("it's alphanumeric"); } if (isAlpha(thisChar)) { Serial.println("it's alphabetic"); } if (isAscii(thisChar)) { Serial.println("it's ASCII"); } if (isWhitespace(thisChar)) { Serial.println("it's whitespace"); } if (isControl(thisChar)) { Serial.println("it's a control character"); } if (isDigit(thisChar)) { Serial.println("it's a numeric digit"); } if (isGraph(thisChar)) { Serial.println("it's a printable character that's not whitespace"); } if (isLowerCase(thisChar)) { Serial.println("it's lower case"); } if (isPrintable(thisChar)) { Serial.println("it's printable"); } if (isPunct(thisChar)) { Serial.println("it's punctuation"); } if (isSpace(thisChar)) { Serial.println("it's a space character"); } if (isUpperCase(thisChar)) { Serial.println("it's upper case"); } if (isHexadecimalDigit(thisChar)) { Serial.println("it's a valid hexadecimaldigit (i.e. 0 - 9, a - F, or A - F)"); } Serial.println(); // 加几个空格,换另一种类型 Serial.println("Give me another byte:"); Serial.println(); } }