在 Arduino 中检查字符是否可打印

arduinoarduino boardsarduino idearduino programming language

通过各种操作,您可能会遇到不可打印的字符。毕竟,char 是一个 8 位数字,如果您查看 ASCII 表(https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html),只有从 32 到 127 的值,或者总共 127 个值中的 96 个值是可打印的(请参阅http://facweb.cs.depaul.edu/sjost/it212/documents/ascii-pr.htm)。  ASCII 仅使用 7 位数字,而不是 8 位。

因此,如果您从函数中获得一个字符输出,并希望检查它是否可打印,则可以使用 Arduino 的 isPrintable() 函数。

语法

isPrintable(myChar)

其中 myChar  是被检查的字符。如果字符可打印,此函数将返回 true。

示例

void setup() {
   // 将您的设置代码放在此处,运行一次:
   Serial.begin(9600);
   Serial.println();
   char c1 = 'a';
   char c2 = 6;
   char c3 = 56;

   if (isPrintable(c1)) {
      Serial.println("c1 可打印!");
   } else {
      Serial.println("c1 不可打印!");
   }

   if (isPrintable(c2)) {
      Serial.println("c2 可打印!");
   } else {
      Serial.println("c2 不可打印!");
   }

   if (isPrintable(c3)) {
      Serial.println("c3 可打印!");
   } else {
      Serial.println("c3 不可打印!");
   }
}

void loop() {
   // 将您的主代码放在此处,以便重复运行:
}

输出

串行监视器输出如下所示 −

如您所见,字符 c2(对应于数字 6 的 ASCII 等价物)不可打印。您可以从 ASCII 表中检查它对应于 ACK。同样,56 对应于数字 8 的字符表示。因此,它是可打印的。


相关文章