webdevqa.jp.net

minicomでキャラクターを送信できません

Minicomを使用して、シリアルリンクを介してターゲット(sparcプロセッサのUARTリンク)に接続しています。 gtktermまたはcutecomを使用すると、文字を接続、読み取り、送信できます。それらの唯一の問題は、両方が各LF文字の後に空の行を挿入し、:-gtktermがファイルに出力を記録できない-cutecomがファイルに出力を記録した後に「フラッシュ」しないことです(遅延し、16kのデータの束ごとにのみフラッシュされます)

コンソールベースのMinicomは、これらの問題を解決します(そして、空の行を挿入しません...)が、それでも文字を送信できず、理由がわかりません。キー(たとえば、「0」+ Return)を押すと、書き込まれます(ローカルエコーを有効にした場合)が、何も起こりません(gtktermおよびcutetermで機能している間!!)。私のプログラムでは、次のように読んでいます。

`r = scanf("%d", &option);`

デバッガーを使用すると、プログラムがこの行を超えることはありません...

誰かアイデアはありますか?

15
Goulou

ローカルエコーは、何がネットワークを通過するかについては何も言いません。また、scanf()が改行をどのように解釈するかということもあります。 getchar() を使用してプログラムを作成し、それが入力を取得するかどうかを確認します。特に、さまざまなターミナルエミュレータでEnterキーを押したときに何が起こるかを確認します。

Minicomですべてのボーレートなどの設定が正しく設定されていることを確認してください。 minicomのコマンドラインパラメータを確認してください。この方法で、オプションを直接指定できます。

2
Prof. Falken

ミニコム構成のシリアルポート設定で、「ハードウェアフロー制御」オプションを「いいえ」に設定してみてください。

Minicomドキュメントでそのオプションの意味を確認してください:)

50
Primos
  1. ポートの設定でハードウェアフロー制御を[いいえ]に設定すると役立ちます(minicom -s;シリアルポートのセットアップに移動します。最後の2行はハードウェアとソフトウェアのフロー制御です。両方をNOに設定するだけです)
  2. エコーをオンにします(ctrlA minicomをオンにした後、E)を押して、何かを送信するかどうかを確認することもお勧めします。
6
tngotran

Linuxマシンを再起動すると、問題が解決しました。

Minicomは以前は機能していましたが、同僚が誤ってボードの電源を切ったときに、入力を停止しました。私は1時間すべてを試しました。何も機能しなくなったとき、PCを再起動すると、動作し始めました。

0
Hitesh Sahu