我正在拼命想让蓝牙适配器与我的Arduino配合使用,但是我无法向它发送它需要的命令。当我通过USB转UART芯片将其插入计算机并从PuTTY发送命令(C
)然后按Enter
时,我可以使用它。
蓝牙适配器的command sheet表示我试图发送它的命令C<cr>
但我无法弄清楚如何从Arduino代码发送正确的回车符。我尝试使用Serial.println()
函数以及将\r
字符添加到我当前的Serial.write("C\r")
,但这些都不起作用。
我怎样才能做到这一点? - 谢谢。
答案 0 :(得分:6)
有趣的是,我可以在Win 7上报告相反的情况:PuTTY,我的嵌入式项目只通过COM端口发送'\ r'。好奇,阅读:令人难以理解,但我只是在串行连接的另一端寻找任何一个字符。
然后,如果在终端选项下启用'每个CR中的隐式LF',它将同时发送'\ r \ n'。默认行为似乎类似于Commodore机器:D(http://en.wikipedia.org/wiki/Newline)......谁知道......
答案 1 :(得分:3)
PuTTY模拟模拟vt100的xterm。要在按下Enter键时让putty发送CR / LF,请在连接到串行设备后键入ESC [20h in putty。这将VT100 LNM设为true。
http://vt100.net/docs/vt100-ug/chapter3.html
换行/换行新换行ESC [20h换行ESC [20l
答案 2 :(得分:2)
如果您观看ascii表或类似的参考文献,您可能会感兴趣:\ r ou \ x0D
为了更好地理解,请参阅:http://www.grok2.com/sedfaq6.html
答案 3 :(得分:2)
在arduino程序中,只需使用Serial.write
和两个字符代码:
Serial.write(13); // CR
Serial.write(10); // LF
并避免使用Serial.print
因为它是人类可读的,所以格式化。
答案 4 :(得分:2)
在修改后的PuTTY中可以发送CR + LF。源代码位于https://github.com/gniemirowski/putty-crlf,Windows二进制文件位于https://www.grzegorz.net/pliki/putty-crlf.zip,运行此版本时,只需转到“终端”->“键盘”,然后为“输入键”选项选择“ CR LF”。
答案 5 :(得分:0)
我几乎可以肯定您正在寻找\n
新行字符。
答案 6 :(得分:0)
昨天我正在尝试解决其他问题。 在标准配置中(在Windows和Linux上),如果您键入&#34; help&#34;然后按串口输入将出现跟随位串(通过RS232和逻辑分析仪通过外部连接终端检查):
0x68(h)0x65(e)0x6c(l)0x70(p)0x0d(CR:回车U + 000A)
所以看起来像PUTTY将CR放在ENTER上(无论你是在Linux还是Windows上)
答案 7 :(得分:0)
我尝试了这个非常简单的代码(cr =回车)
Serial.write(13);
因为下一个&#34;打印&#34; caracters将提供剩余文本,没关系。
答案 8 :(得分:0)
修改后的PuTTY是最简单的解决方案。如果您要坚持使用标准腻子,还有其他一些选择... 您可以在按Enter之前使用ctrl + j发送换行符,但这很麻烦。 要使其自动化,可以在激活PuTTY窗口后使用AutoHotKey将{ENTER}更改为^ J {ENTER}:
#if WinActive("ahk_exe putty.exe")
Enter::
SendInput ^J{Enter}
Return
#if
要仅对一个PuTTY窗口执行此操作,可以为AHK命名该窗口:
#if WinActive("COM8 - PuTTY")
Enter::
SendInput ^J{Enter}
Return
#if