webdevqa.jp.net

Enterキーを押すとPuTTYは何を送信しますか?

BluetoothドングルをArduinoで動作させるために必死に努力していますが、必要なコマンドを送信できません。 UARTチップにUSB経由でコンピューターに接続し、PuTTYからコマンド(C)を送信してEnterを押すと、これを使用できます。

Bluetoothドングルの コマンドシート は、送信しようとしているコマンドが_C<cr>_であることを示していますが、Arduinoコードから適切な復帰文字を送信する方法がわかりません。 Serial.println()関数を使用し、_\r_文字を現在のSerial.write("C\r")に追加しようとしましたが、どちらも機能していません。

どうすればこれを達成できますか?

11
Sponge Bob

興味深いことに、私はWin 7で反対を報告できます。PuTTYが私のためにあり、私の埋め込みプロジェクトはCOMポート経由で '\ r'のみを送信しています。好奇心が強い、読んで:イライラするほど説明できないですが、私はシリアル接続の反対側でどちらかの文字を探します。

次に、[ターミナルオプション]の[すべてのCRで暗黙的LF]を有効にすると、両方の '\ r\n'が送信されます。デフォルトの動作は、Commodoreマシンに似ているようです:D(- http://en.wikipedia.org/wiki/Newline )...誰が知っている...

7
Sowka

PuTTYはvt100をエミュレートするxtermをエミュレートします。 Enterを押したときにPuTTYがCR/LFを送信するようにするには、シリアルデバイスに接続した後、PuTTYでESC [20hと入力します。これにより、VT100 LNMがtrueに設定されます。

http://vt100.net/docs/vt100-ug/chapter3.html

改行/改行改行ESC [20h改行ESC [20l

5
bubbasnmp

変更されたPuTTYではCR + LFの送信が可能です。ソースコードは https://github.com/gniemirowski/PuTTY-crlf で入手でき、Windowsバイナリは https://www.grzegorz.net/pliki/PuTTY-crlf.Zipで入手できます。 このバージョンを実行する場合は、ターミナル->キーボードに移動し、[Enterキー]オプションで[CR LF]を選択します。

enter image description here

4
grzegorz

ASCIIテーブルまたは同様のリファレンスを見ると、面白いかもしれません:\ r ou\x0D

よりよく理解するには、以下を参照してください: http://www.grok2.com/sedfaq6.html

2
user1701341

Arduinoプログラムでは、単にSerial.writeおよび両方の文字コード:

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

そしてSerial.print人間が読めるように意図されているため、フォーマットされています。

参照: 書き込み印刷

1
Luis Siquot

昨日は他の問題でこれを試してみました。標準構成(WindowsおよびLinux)で、「help」と入力してからシリアルポートでEnterキーを押すと、ビットのチェーンが表示されます(RS232経由の外部接続端子とロジックアナライザーで確認)。

0x68(h)0x65(e)0x6c(l)0x70(p)0x0d(CR:キャリッジリターンU + 000A)

puTTYはENTERにCRを付けるようです(LinuxとWindowsのどちらを使用していても)

0
Mazeryt

私はこの非常に単純なコードを試しました(cr =キャリッジリターン)

Serial.write(13);

そして、次の「印刷された」文字が残りのテキストをフィードするため、問題ありません。

0
yannick85

\n改行文字を探していると思います。

0
uDalillu