0

所以我正在制作一个草图,从 USB 端口获取一个两位数,检查与该数字匹配的引脚状态,然后打开/关闭引脚。

看看源头

出于某种原因,当我通过 Arduino 串行监视器发送 13 时,我收到了这条消息: Pin number is greater than 14, details: 490 51 541

这意味着 IDE 正在发送奇怪的数字,或者 Arduino 处理错误。你们中的任何人都看到为什么这不起作用的问题吗?

4

1 回答 1

1

如果输入ASCII字符“1”然后“3”,那么Serial.read()将返回 49 和 51。这是因为在ASCII字符表中,“1”和“3”分别由数字 49 和 51 表示。如果您想找到用户输入的数字,您必须将其从ASCII转换。

我对 Arduino 语言不是很熟悉,但假设它类似于 C,您可以在此处找到所需的更改。

我用另一种方式重写了程序,这对Read可能更清楚。

源代码中使用的 '0' 只是“用于表示字符 '0' 的数字”的另一种说法,48 也是如此。在类 C 语言'0' == 48'1' == 49, 等。

于 2008-12-27T01:10:27.880 回答