2012-08-17 503 views
8

我正拼命地想要一个蓝牙适配器与我的Arduino一起工作,但我无法发送它所需的命令。当我通过USB到UART芯片将其插入计算机并从PuTTY发送命令(C),然后按Enter时,我可以使用它。当我按Enter键时,PuTTY发送了什么?

蓝牙适配器的command sheet说,我试图发送它的命令C<cr>,但我无法弄清楚如何从Arduino代码发送正确的回车符。我曾尝试使用Serial.println()函数以及将\r字符添加到我当前的Serial.write("C\r"),但这两个都不起作用。

我该如何做到这一点? - 谢谢。

+1

检查腻子终端设置,看看它设置为发送;你可以配置它发送你想要的任何行结束符。 – geoffspear 2012-08-17 00:04:18

+1

@Wooble哪里可以找到“PuTTY Reconfiguration”? – 2012-08-17 00:07:39

回答

0

我几乎可以肯定你正在寻找\n换行符。

0

昨天我在其他问题与此尝试。 在标准配置下(在Windows和Linux上),如果您输入“help”,然后按下回车键,串行端口将出现一串位(通过RS232和逻辑分析仪与外部连接的终端进行检查):

0x68 )0x65(E)0x6c(L)0x70(p)0X0D(CR:回车U + 000A)

所以看起来像油灰使CR上的Enter(无论您是在Linux或Windows)

+1

0x0d与U + 000A不一样,是吗? – thorn 2014-05-06 11:03:40

+0

@thorn是的,我写了0X0D(LF:换行,U + 000A),所以最后一个字符是0X0D或U + 000A :) – Mazeryt 2015-02-16 20:30:54

+3

0X0A == U + 000A == LF,0X0D == U + 000D == CR – thorn 2015-02-18 19:36:52

6

有趣的是,我可以在Win 7:PuTTY上报告相反的情况,我的嵌入式项目只通过COM端口发送'\ r'。好奇,阅读:沮丧地无法解释,但我只是在串行连接的另一端寻找任何字符。

然后,如果您在终端选项下启用'每个CR中的隐式LF',它将同时发送'\ r \ n'。默认的行为似乎是类似于一台Commodore机:d(http://en.wikipedia.org/wiki/Newline)......谁知道......

+0

刚跑成这样了,感谢提隐LF设置。 – 2013-10-11 22:09:46

+1

我也碰到过这个。我真的很高兴在把它挂到我的PIC之前先进行检查;正如其他人的帖子所显示的那样,这是非常意外的。我的范围清楚地表明,Putty的默认设置是仅发送\ r。这没有记录。 – carveone 2014-07-26 13:08:44

+0

@carveone,我发现该文档(这里)(http://the.earth.li/~sgtatham/putty/0.63/htmldoc/Chapter4.html#config-telnet),见秒。 4.6.14:
默认情况下,腻子当你按下,而不是**发送CONTROL-M,因为它在大多数其他协议返回,发送的Telnet新线码** – tsul 2015-11-18 15:35:09

2

在Arduino的程序,只是使用Serial.write和两个字符代码:

Serial.write(13); // CR 
Serial.write(10); // LF 

和避免Serial.print为它的目的是作为人类可读的,如此格式化。

引用:writeprint

+0

我希望你能找到你的答案。 =) – 2014-06-18 13:19:26

0

我想这非常简单的代码(CR =回车)

Serial.write(13); 

而且由于下一个 “打印” caracters将饲料残留的文字,它的确定。

相关问题