問題タブ [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.

0 投票する
2 に答える
5630 参照

avr - USART受信用にFreeRTOSで新しいタスクを作成する

AVRプロジェクトの開発IDEとしてAVRStudio5でEVK1105開発ボードを使用しています。FreeRTOSを使用しています。このボードには3つのUSARTポートがあります。1つの外部モジュールがUSART-RS232モードを介してAVR32ボードに接続されています。それは、19230ボーレート、7データビット、奇数パリティ、ストップビット1、および通常チャネルモードでUSART0上のボードに連続シリアルデータを送信します。この目的のために新しいタスクを作成しました。9データバイトごとに、「\n」と「\r」を送信します。そのため、私のタスクでは、文字列バッファに9データバイトを収集し続け、それをUSART1で送信します。受信ポートであるUSAR0からデータを収集するためにポーリング方式を使用しています。しかし、私はデータの受信で問題に直面しています。タイミングの問題なのか、データ収集中にスケジューラーがタスクを切り替えるのかわかりません。しかし、必要なデータが得られません。

トラブルシューティングとしてすでに確認したことは次のとおりです。1。外部モジュールをPCハイパーターミナルに接続すると、完璧な結果が得られます。2. USART0からの受信を使用するのと同じことを実装し、受信したものはすべてFreeRTOSを使用しない場合と同じようにUSART1に送信されます。それはうまくいきます。

何が間違っているのか考えてみてください。キューを使用してTxタスクとRxタスクの間で通信し、USART0からUSART1に文字列バッファを渡します。キューの処理に問題がありますか?キューのトラブルシューティングを行うにはどうすればよいですか?

RxTaskの無限タスクループで50msの遅延を使用しています。問題が発生する可能性はありますか?遅延を使用しないと、OSがクラッシュします。タイミングの問題が発生しないように、FreeRTOSで新しいタスクを作成するためのいくつかの良い方法を提案してください。

0 投票する
1 に答える
1713 参照

microcontroller - PIC 16 で USART を使用する正しい方法

PIC 16 の USART 機能を使用して 1 文字を受信しようとしています。

送信機と受信機はどちらも PIC 16 です。

receive 関数の呼び出し方が概念的に正しいかどうかを確認できますか

よろしくお願いします!

0 投票する
2 に答える
2031 参照

arm - Atmega と ARM UART 接続。奇妙な振る舞い

ですから、AVR だけに関係のない複雑な問題ですが、その問題は Atmega にあると思います。

  • uClinux で動作する ARM NUC745 ベースの FOSCAM WI-FI カメラを持っています。そのカメラには、私の Atmega ボードに接続されている UART ポートがあります。ARM ボードの UART がコンソールの出力と入力に使用されるのと同時に。

  • カメラが提供する Web インターフェイスを介してコマンドを送信できます。このコマンドは、UART を介して ARM ボードを介して Atmega ボードに送信されます。

  • Atmega が ARM から UART に送られるデータを読み取るためのプログラムを作成しました。そして、すべてのデータは Atmega によって受信されるようです。受信したデータに関して、Atmega は UART を介して Atmega から ARM ボードにデータを送信しました。VMLAB では、オシロスコープにデータが出ていることがわかります。しかし、ARM ボードはそのデータを受信しません。Atmega ボードを ARM ボードから切り離し、ARM ボードを iMac の端末に接続すると、Atmega から送信されたすべてのデータが端末にすばやく表示され、ARM ボード用に作成したプログラムがすべてのデータを受信します。

かなり奇妙な行動です。ターミナル接続と Atmega シリアル接続が異なるようで、その理由がわかりません:(((

申し訳ありませんが、コードを適切にフォーマットできませんでした

これがAtmegaのコードです

そしてARM Linux用のコード

誰かがこれで私を助けてくれますか

0 投票する
1 に答える
2096 参照

matlab - Matlabを介した仮想Com-Port通信

matlabを使用してCom-portを接続しているときに、何度も(5つのうち4つ)エラーが発生します

??? Error using ==> serial.fopen at 72 Port: COM21 is not available. Available ports: COM3, COM10, COM17, COM18.

ただし、接続されて期待どおりに応答する場合があります。誰かがこれの問題を教えてもらえますか?

ちなみに、私はこのスニペットを使用して、マイクロコントローラーをUSB経由でPCに接続しています

0 投票する
2 に答える
3689 参照

c# - 「ポート COMx が存在しません」 - SerialPort の Open() で例外がスローされる

私のタイトルは私の問題を説明しています...それを解決するために何もできません。

USBケーブルで接続されたシリアルCOMデバイスです(適切なドライバがインストールされています)。また、COM ポートがシステムによって検出され、次のレジストリ キーに存在することがわかります: HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

お知らせ下さい。

更新: 説明不足で申し訳ありません。おそらく、私はそれが起こる理由を考えました.値がHKLM\HARDWARE\DEVICEMAP\SERIALCOMMに追加/削除されたイベントでアプリがサブスクライブしました。そして、アプリはそれに気づいた直後にポートを開こうとしました。しかし、その時点ではポートの準備ができていない可能性があるため、「ポートが存在しません」というメッセージが表示されました。単純に Thread.Sleep(2000) で問題が解決しました。

しかし、このスリープ ソリューションは適切なソリューションとは思えません。たぶん、レジストリ以外に接続されているデバイスを別の場所で確認する必要がありますか? そのため、実際に存在し、接続する準備ができたときに接続します。

ご回答ありがとうございます。スタックオーバーフローが大好き!

0 投票する
3 に答える
1729 参照

serial-port - uartとpic18f452の問題

pic18f452とuartに問題があります。次のような最も単純なコードを使用します。

そして永遠にwhileループの間に私はこのコードを持っています

また、ハードウェアの液晶モジュールには非常に正常に動作しますが、PCで受信したデータはそのようなスクラップです

私はすべての接続をチェックしましたが、何も問題はありません。MAX232icを変更しましたが、運がありませんか?!私のハードウェアはそのようなものです ここに画像の説明を入力してください

最後に、すべての接続に問題はありません(極性とその他すべて?)編集:mikrocをコンパイラーとして使用します

0 投票する
2 に答える
10997 参照

arm - 小さなARMマイクロコントローラにuart受信バッファを実装する正しい方法は?

rs485 経由で 921.6Kbaud で 15 バイトのパケットを処理する小さなアプリケーション用の受信バッファのアイデアを探しています。UART ISR とメインの間のインターフェイスとして循環バッファを使用することを考えています。載せたかったマイクロプロセッサなので

の中に

メインの一部ですが、これは受け入れられないと言われています。

同様の状況下で、人々は UART をどのように扱うのでしょうか?

0 投票する
1 に答える
4050 参照

timer - Avr-gcc:UARTと競合するタイマー/カウンター割り込み?

次の例(Arduino IDE 0022、Ubuntu 11.04、Arduino AtMEGA 2560で試してみました)を検討してください。ここでは、タイマー/カウンター割り込みを開始Serialし、同時にArduinoクラスを使用しようとしています。

例のように、シリアルによる印刷は次のようになります。

...その後、すべての処理が停止します(LEDピン13と34の両方にアクションがないことで示されます)。おそらく、これはチップの世界ではBSODと呼ばれるものです:)表面的には、ISRルーチンが初めて開始されるとすぐに停止が発生します。

「レジスタ更新部分」を取り出すと、シリアルプリントアウトは予想どおりに永久に実行されます。また(予想どおり)、ISRは実行されません。ただし、「レジスタ更新部分」が残っていて、Serial.println(...代わりに2つの「」行がコメント化されている場合(プログラムは「Hellofrom setup」のみを出力します)、割り込みは実行されます(ピン34のパルスによって証明されます)。

これは、ATMega2560でタイマーISRとUARTを同時に実行することはできないことを示しているようです。これは、以前にATMega328で同じ種類のアプローチを使用して成功したことを考えると、ばかげています。

だから、私がやりたいこと(シリアルプリントアウトとピンパルスの両方を持っている)がこのアーキテクチャでは基本的に不可能かどうか迷っています-それともセットアップに何かが欠けているだけですか?

よろしくお願いします、乾杯!

(このSerialクラスは実際にはArduino IDEパッケージのHardwareSerial.cppのクラス定義で動作し、このクラスは受信USART割り込みルーチンを定義します。これが問題になる可能性があると考えましたが、同じアプローチを使用しました。私がそれが機能するのを見たATMega328で..)

編集:Avr-gccへの再投稿:UARTと競合するタイマー/カウンター割り込み?-Arduinoフォーラム

0 投票する
1 に答える
1008 参照

c - UART は GPS NMEA センテンスを受信できません

私の UART は 4800 ボー レートに設定されていますが、下に貼り付けた UART コードを使用して NMEA センテンス (GPS 評価ボード) を受信できません。個々の GPS+ターミナルと UART+ターミナルは正常に動作しています。しかし、 GPS+UART 、センテンスを受信することはできません GPSのデフォルトのbuadレートは4800です

UARTのどこが間違っているのですか???