BluetoothドングルをArduinoで動作させるために必死に努力していますが、必要なコマンドを送信できません。 UARTチップにUSB経由でコンピューターに接続し、PuTTYからコマンド(C
)を送信してEnter
を押すと、これを使用できます。
Bluetoothドングルの コマンドシート は、送信しようとしているコマンドが_C<cr>
_であることを示していますが、Arduinoコードから適切な復帰文字を送信する方法がわかりません。 Serial.println()
関数を使用し、_\r
_文字を現在のSerial.write("C\r")
に追加しようとしましたが、どちらも機能していません。
どうすればこれを達成できますか?
興味深いことに、私はWin 7で反対を報告できます。PuTTYが私のためにあり、私の埋め込みプロジェクトはCOMポート経由で '\ r'のみを送信しています。好奇心が強い、読んで:イライラするほど説明できないですが、私はシリアル接続の反対側でどちらかの文字を探します。
次に、[ターミナルオプション]の[すべてのCRで暗黙的LF]を有効にすると、両方の '\ r\n'が送信されます。デフォルトの動作は、Commodoreマシンに似ているようです:D(- http://en.wikipedia.org/wiki/Newline )...誰が知っている...
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
変更されたPuTTYではCR + LFの送信が可能です。ソースコードは https://github.com/gniemirowski/PuTTY-crlf で入手でき、Windowsバイナリは https://www.grzegorz.net/pliki/PuTTY-crlf.Zipで入手できます。 このバージョンを実行する場合は、ターミナル->キーボードに移動し、[Enterキー]オプションで[CR LF]を選択します。
ASCIIテーブルまたは同様のリファレンスを見ると、面白いかもしれません:\ r ou\x0D
よりよく理解するには、以下を参照してください: http://www.grok2.com/sedfaq6.html
昨日は他の問題でこれを試してみました。標準構成(WindowsおよびLinux)で、「help」と入力してからシリアルポートでEnterキーを押すと、ビットのチェーンが表示されます(RS232経由の外部接続端子とロジックアナライザーで確認)。
0x68(h)0x65(e)0x6c(l)0x70(p)0x0d(CR:キャリッジリターンU + 000A)
puTTYはENTERにCRを付けるようです(LinuxとWindowsのどちらを使用していても)
私はこの非常に単純なコードを試しました(cr =キャリッジリターン)
Serial.write(13);
そして、次の「印刷された」文字が残りのテキストをフィードするため、問題ありません。
\n
改行文字を探していると思います。