在 Arduino 中检查字符是否可打印
通过各种操作,您可能会遇到不可打印的字符。毕竟,一个 char 是一个 8 位数字,如果您查看 ASCII 表格 (https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html), 只有从 32 到 127 的值,或者总共 96 个值中的 127 个是可打印的(参见 http://facweb.cs.depaul.edu/sjost/it212/documents/ascii-pr.htm). ASCII 只使用 7 位数字,而不是 8 位。
因此,如果您从函数获得 char 输出,并希望检查它是否可打印,则可以使用 Arduino 的 isPrintable() 函数。
语法
isPrintable(myChar)
其中 **myChar** 是要检查的字符。如果字符可打印,则此函数返回 true。
示例
void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.println(); char c1 = 'a'; char c2 = 6; char c3 = 56; if (isPrintable(c1)) { Serial.println("c1 is printable!"); } else { Serial.println("c1 is not printable!"); } if (isPrintable(c2)) { Serial.println("c2 is printable!"); } else { Serial.println("c2 is not printable!"); } if (isPrintable(c3)) { Serial.println("c3 is printable!"); } else { Serial.println("c3 is not printable!"); } } void loop() { // put your main code here, to run repeatedly: }
输出
串口监视器输出如下所示:
如您所见,字符 c2(对应于数字 6 的 ASCII 等效值)不可打印。您可以从 ASCII 表格中检查它对应于 ACK。类似地,56 对应于数字 8 的字符表示形式。因此,它是可打印的。
广告