串行发送奇怪的数据

时间:2008-12-26 23:55:34

标签: embedded arduino

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

Take a peek at the source

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

意味着IDE正在发送奇怪的数字,或者Arduino正在处理错误的数字。你们有没有看到一个问题,为什么这不能正常工作?

1 个答案:

答案 0 :(得分:1)

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

我对Arduino语言不是很熟悉,但假设它与C类似,你可以找到所需的更改Here

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

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