問題タブ [uart]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 以前に受信した UART 値を表示する
これは、C に詳しい人なら誰でも簡単に答えられるはずです。変数 (マイクロコントローラーの UART (RS-232) の受信レジスター) の以前の値を LCD に表示したいと考えています。これは私の現在の実装であり、正常に動作します。しかし、割り込みルーチンに費やす時間を減らす方法があるかどうか知りたいです。現在、ペリフェラルは、UART フィードで新しい文字を 1 つ受信するとすぐに割り込みルーチンにジャンプするように構成されています。提案は誰ですか?
pointers - 循環バッファポインタの不規則性
これは、この質問のフォローアップです。以前に受信したUART値を表示します。
マイクロコントローラに循環バッファを実装した後、ポインタに問題があるようです。
RS-232で送信:ADE1234
受信(バッファ= 8):E24AE2 / E2AE24(2つの間を反転)受信(バッファ= 16):D234E1(Aはシンクロバイトであるためスキップされます)
受信(RX_BufSize = 32):DE1223 / DEE123 / DE1234 / DE12E1(ランダムに反転)
期待される受信:DE1234
初期化
LCDに表示されるデバッグ値
受信割り込み
ソースからの関数
Detect_Cmd_RXDは、1/256秒ごとに呼び出されます。その間、UART受信バッファで少なくとも7つの値が送信されます。
書き込みプロセスが非常に高速で、読み取りポインターに追いつく可能性はありますか?Detect_Cmd_RXDをより頻繁に呼び出す以外に、この問題を解決するにはどうすればよいですか?
ipad - UART を介した iPad アクセサリ通信
コマンドを iPad に転送する iPad/iPhone 用の新しいアクセサリを製造しています。UART を使用するのが好きです ( Lingoと呼ばれる特定の Apple プロトコルを介して)。私の調査によると、使用できるのは USB (30PIN コネクタ) とカスタム プロトコルのみです。
質問:
- UART を使用して APP 側から iPad アクセサリに接続する方法はありますか?
- プロトコルが UART で実装されている場合、USB 経由でアプリで使用できない場合は、USB に移動できるはずです。
私の主な推測では、UART コマンドとアクセスは iPhone OS 用に予約されたプロトコルであり、アプリでは使用できないということです。特定の UART コマンドには、ボリュームやオーディオの再ルーティングなどの設定も含まれているため、セキュリティで保護されていると思います。
c - uart バッファが読み取られない
Linux の C でシリアル デバイスからバイナリ データを読み込もうとしています。問題は、ドライバの内部バッファに char が存在することがありますが、(select(2) を使用して) ポーリングすると、デバイスを読み取る準備ができていないというメッセージが返されることです。
私はtermiosの男と関連するすべての人を読んで再読し、インターネットで検索しました。すべてのフラグ (つまり、VTIME、VMIN) を正しく設定し、ICANON の設定を解除したと思います。「tcmakeraw」という機能も試してみましたが、問題は解決しませんでした。
私が何をすべきかについて何か考えはありますか?
よろしくお願いいたします。
linux - UART の初期化: UART が RTS を高くプルしないようにします
Linux で ARM AT91SAM9260 ボード用の RS485 ドライバーを作成しています。
UART を初期化すると、RTS 信号線がハイ (1) になります。これは、RS232 操作モードの標準的な動作であり、そうあるべきだと思います。ただし、RS485 モードでは、これは望ましくありません。
arm-arch セクションが提供する標準関数を使用して、UART を初期化しています。したがって、重要な手順は次のとおりです。
ご覧のとおり
at91_set_B_periph(AT91_PIN_PC8, 0);
RTS ピンのプルアップはアクティブになりません。
UART が RTS を高く設定するのはなぜですか? これが RS232 モードの標準的な動作であるという理由だけでしょうか?
動作モードが明示的に設定されるまで、UART が沈黙を保つことがより良い標準ではないでしょうか?
linux - Linux UART ドライバーの変更
Linux カーネル (2.6.32) の UART ドライバーを変更したいと考えています。正確なファイルがわからない ttyS2 の標準 uart ドライバーを使用しています。問題は単純で、送信中および受信中は gpio ピンを高く設定して維持し、それを低くする必要があります。
どのファイルを参照すればよいですか? そして、uart ドライバーからのビットバンギング gpio に関するアイデアは大歓迎です...
よろしく。
c - C on ARM - UART 受信待ち
関数を自分の目的に合わせてより適切に変更しようとしています。
上記のコードは、シリアル ポート 0 で文字が受信されるまで関数をハングさせ、それを返します。そのようにwhileループを使用して呼び出していました。
そのため、シリアルポートを介してリターンキャリッジが受信されるまで待機し、これがバッファにコピーされる前の各文字が表示されます。今、私の問題です。現在、データの読み取りに問題があり、どこに問題があるのか を判断できません.どちらの方法でも、改行または改行が正しく認識されていませんが、一部の出力で検出されています! 完了したらすべてをファイルに保存しているので、これはわかっていますが、これを行うには、 while ループで ai!=5 を使用し、5 文字を読み取るだけです。20にすると、再びハングし、他に何も読み取っていないように見えます(uart経由でデータを送信しているにもかかわらず)
X時間読み取り、残りの機能を続行するように変更する方法はありますか?
編集:
編集2:
わかりました、これはユーザー入力を読み取るために私が書いた関数です。
そしてそれはそのように呼ばれます。
よく呼ばれますが、これは私の呼び方の一例です。次に、これをファイルに出力すると、100% の確率で動作します。
問題全体を説明するのにおそらく役立つでしょう。シリアル ポート (RX および TX) にワイヤレス モジュールが接続された ARM ボードがあります。上記の readInput 関数は、ワイヤレス モジュールに telnet 接続したユーザーからの入力を読み取るために使用され、ARM ボードがユーザーからのすべての入力を読み取れるようにします。私が今達成しようとしているのは、コマンドを実行した後にワイヤレスモジュールからの入力を読み取ることです。printf ステートメントを使用すると、コマンドをステートメントに入れることでコマンドを実行できます。私が達成する必要があるのは、ワイヤレス モジュールからの出力を読み取ることです。ここで問題が発生します。私はいくつかの出力を取得していますが、それは非常に限られており、期待したものではありませんが、明らかにモジュールからのものです。
avr-gcc - USARTからの入力を取得できません-FreeRTOS-AT32UC3A0512
FreeRTOSを試してみてください。以下は私の設定です-
- マイクロコントローラー-AT32UC3A0512
- ボード-EVK1105
- FreeRTOSの使用
- 環境-ASF最新2.3フレームワークを備えたAVRStudio5
サンプルプロジェクトFreeRTOSから新しいプロジェクトを作成しました。現在USARTをチェックしています。サンプルプロジェクトを実行すると、USARTを介して開発ボードからPCに文字を送信できますが、PCのusartターミナルプログラム(Puttyを使用)で何かを入力または入力すると、何も表示されません。誰かが何が間違っているのか提案できますか?または、USARTのターミナルプログラムで入力と表示を行うために、現在のサンプルコードのコードを変更する必要がありますか?
ありがとう...
linux - 読み取り/書き込み操作中に tty ドライバーが UART ドライバーと対話する方法は?
SDIO UART ドライバの修正/開発に取り組んでいます。
そして知りたい:
読み取り/書き込み操作中に tty ドライバーが UART ドライバーと対話する方法は? バッファ管理に興味があります。
ネットで検索しましたが、必要な情報が見つかりませんでした。
誰かがこれに光を当てることができますか?
前もって感謝します。
linux - ドライバー内からドライバーを使用する Linux
Linux ボックスから RS232 シリアル経由でマイクロコントローラに接続しようとしています。
ドライバーを作成し、プロトコル b/n pc とマイクロコントローラーを実装しました。これは、カーネルに既に存在する tty(/dev/ttyS0) デバイスをモジュールとして使用します (たとえば、open、close などの呼び出しを介して)。ただし、コンパイルしようとすると、開く、書き込み、読み取りなどへの参照が見つからないと表示されます...
ドライバー内から既存のデバイス ドライバーを使用するにはどうすればよいですか? 他に含める必要があるものはありますか?
そうでない場合、ドライバ内から簡単にシリアル ポートを使用するにはどうすればよいですか?