在 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 的字符表示。因此,它是可打印的。