問題タブ [usart]
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.
windows - USART からデータを読み取る
ARM Cortex M3 をプログラミングしています。USART ポートで動作する stdout 関数があります。Windows 7 コンピュータのボードから USART 経由で送信されたデータを監視するにはどうすればよいですか? 使用すべき標準の「USART パケット スニファー」はありますか?
timer - AVR バタフライ - 内部発振器キャリブレーション後のタイマー再利用
AVR から提供されたサンプル コード (以下のコードを参照) に基づいて、USART を使用できるように AVR バタフライ内部発振器を調整しています。タイマー制御のサーボモーターを 2 つ使用したかったので、キャリブレーション プロセス後に 16 ビット タイマー 1 を再利用できないかどうか疑問に思っています - TCCR1A/B をリセットしようとしましたが、うまくいきませんでした (コードは以下にもあります)。 . これで私を助けてくれることを願っています。
c - set_usart_base((void *)) EVK1105 dev 使用時の関数の暗黙の宣言。ボード。アトメル
evk1105 dev.board を使い始めたばかりです。そして、printf() を usart にリダイレクトする必要があります。次のコードがあります (evk1105 の編集された usart の例):
set_usart_base を追加すると、次のコンパイル エラーimplicit declaration of function 'set_usart_base'
set_usart_base が表示されます: avrfreaks.net
私が間違っていることについてのヒントはありますか?
bluetooth - Bluetooth デバイスから pic18f4525 の RCREG からデータを読み取る
Bluetoothデバイスを介してAndroidフォンからpic18f4525にデータを送信しようとしているプロジェクトがあります。現在、「A」のような単純な文字を認識できるように写真を取得しようとしています。
私が理解していることから、PICがPORTC.7(RXピン)を介してデータを受信すると、8ビットの情報がRCREGレジスタに保存され、データを読み取るだけで済みます。受信フラグが設定されているため、picがデータを受信していることがわかります。また、スコープを写真の受信ピンに接続したところ、正しい 01 シーケンスを受信しています。
私の質問は、RCREGレジスタを読み取って情報にアクセスするにはどうすればよいですか? 私が知る限り、usart.h から ReadUSART を使用することはできますが、このヘッダー ファイルはコンパイルされないため、そのヘッダー ファイルを使用せずにこのデータにアクセスしようとしています。これを行う方法はありますか?データを直接保存しようとしました(つまり、値= RCREG)。レジスタを「読み取る」ことができます(受信フラグがリセットされるので、読み取っていることがわかります)が、picは常に値が0xFFであると考えています。送信。
MPLAB バージョン 8.85、ICD2、および CC8E コンパイラを使用しています。データの読み取り方法に関するヘルプは大歓迎です。また、写真で usart を使用するためのデータシートを完全に読み、コンパイラのマニュアルを読み、このトピックについて多くの検索を行いましたが、役に立ちませんでした。
ご協力いただきありがとうございます。
アップデート:
終わり!!!さらに数時間いじり回した後、ようやく機能するようになりました。実際にはボーレートの問題でした。お世話になりました!
serial-port - PIC18f4620 SDCC で usart を受信
rs232用のPIC18F4620でPC(linux)の通信を実現しようとしています。送信 (PIC -> PC への送信は問題ありません)。ただし、PC から PIC に何かを渡そうとすると、PIR1bits.RCIF フラグが設定されず、割り込みが発生しません。
それが私の(PIC18f)コードです(1つのバージョン):
PCで私がした:
というわけで、PIC to PCはOK。しかし、私がしようとすると:
echo "何か" > /dev/ttyUSB0
また
または、/dev/ttyUSB0 をファイルとして開いて書き込み、python シリアル モジュールを使用するコードを書いても、何も起こりません。
c - USART受信割り込みstm32
私はSTM32とUSART割り込みに取り組んでいるマップ上で開発します。USART1を構成し、受信割り込みを有効にするようにした後。受信の中断が検出されないという問題????
serial-port - コードでシリアル通信が一方向 (チップ -> PC) でしか機能しないのはなぜですか?
CでArduino Mega 2560のコードを書いていて、シリアルポート経由で双方向通信をしようとしています。ただし、Arduino から PC へのデータの送信のみが機能し、他の方法は機能しません。arduino の RX LED がすぐに点灯しますが、私のコードはデータを受信しません (「ピン 13」に接続されている LED は点灯しません)。これを修正する方法を知っている人はいますか?
arduinoで実行しているコードは次のとおりです。
PC で実行されているコードは次のとおりです。
(そして、はい、データを送信するために PC で <+> と入力しています。また、コードから直接 LED をオンにしてみましたが、うまくいきました。)
embedded - PIC 18F87J50 USART 構成と ISR トラブル
PIC 18F87J50 を使用するプロジェクト、特に 2 つの USART チャネルとの調整で問題が発生しています。
主な問題は 2 つあります。
1.) 目標のボーレートを設定できません:
Open1USART() および Open2USART() 関数を使用して、使用している 2 つの USART チャネルを初期化しています。両方を 14,400 ボーに設定したいと思います。これらの関数は 2 つの引数を取ります。1 つ目は USART を構成するためのビット フィールドです (非同期対同期モード、8 ビット対 9 ビットなど)。2 つ目は (システム クロック レートに応じて) USART のボー レートを構成する SPBRG 値です。
私は両方を次のように呼び出しています:Open1USART(USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_BRGH_LOW & USART_RX_INT_ON & USART_TX_INT_OFF, 346);
私のセットアップでは、SPBRG としての 346 は 14,400 ボーを与えるようです (1 ビットの幅が約 70us であることを O スコープで確認しました)。
問題は、これが USART 2 でしか機能しないことです。USART 1 では、同じ SPBRG 値で 57,600 のボーレートが得られます。さらに、SPBRG 値をいじってみると (実際のボーレートの影響を確認するためにスコープのタイミングを調べていると)、興味深いことがわかりました。
SPBRG の値を 0 から大きくすると、ボー レートが低下します。SPBRG を 87 にすると 57,600 ボーになり、173 -> 28,800 になりますが、約 255 でリセットされます。255 では、ボー レートは約 19,000 になります。しかし、256 では、信じられないほど高いボーレート (~1,000,000) を持っています。次に、SPBRG 番号をさらに上げると、ボー レートはさらに遅くなりますが、19,000 ボー マークを下回ることはなく、必要な 14,400 まで下がることもありません。
OK、SPBRG バイトをオーバーフローしていますね。しかし、USART 1 と 2 はまったく同じように構成されており、USART 2 で SPBRG 値 > 255 を使用できます。どちらも同じ BRGH 設定 (低) と BRG16 設定 (高) を持っています。また、この投稿 ( PIC18F2680 の UART 受信で割り込みがトリガーされていない) によると、TRISC6-7 は正しく設定することが重要なビットのようです。その投稿が示唆するようにこれらを設定しました(6低、7高)。
役立つ場合は、いくつかのコード スニペットを共有できます。
2.) 受信バイトごとに ISR がトリガーしない:
USART1 と 2 の両方で UART RX 割り込みをオンにしています。正しいボー レートで USART1 に話しかけていないので、周辺機器からの応答がありません。しかし、USART2 では 14,400 ボーで話しており、周辺機器は適切に応答しています (スコープで検証済み)。スコープを使用すると、受信すると予想される 16 バイトすべてを確認でき、タイミングは回線上で良好に見えます。ただし、このポートの RX 割り込みは、最初の 2 または 3 バイトに対してのみトリガーされます。周辺機器が何を応答しているかを知るには、8 バイトを連続して受信する必要があります... しかし、2 バイトまたは 3 バイトを超えることはありません。
したがって、割り込みはトリガーされますが、すべてのバイトではありません。
次の着信バイトの割り込みを見逃さないように、ISR をかなり短くしておく必要があることはわかっていますが、ISR をそのコア機能 (デバッグ出力の削除など) だけに分解しても、まだ表示されているだけです。最初の 3 バイト。スコープ上では、最初の 3 バイトと残りのバイトの間に違いはありません (少なくともビット タイミングでは)。最初の 3 バイトの値は、常に 0xFF です (これは予期されることです)。残りのバイトは異なる値ですが、それが私が見ることができる唯一の違いであり、ISR トリガーがない理由を実際には説明していません。上記の他の質問へのリンクは、確かにこの問題にも関連しているようです。しかし、ISR は常にトリガーしているわけではありません。
あなたが提供できる助けや洞察は大歓迎です。クライアントに再確認して、コードスニペットをさらに追加できるようにします.
discovery - stm32f0 uart プログラミング
私は stm32f0-discovery で usart を動作させようとしていますが、この種のドキュメントが「欠けている」ことがわかったので、stm32f050 で動作する usart の例を持っている人はいますか?
ありがとう。
バート・テウニッセン
c - PIC18F46J50EEPROMの読み取り/書き込み
私が取り組んでいるプロジェクトは以下の通りです。
ADuC7061のUSARTはPIC18F46j50EUSARTに接続されています。aduc7061は継続的に情報を送信し、pic18fはそのeusart0を介してその情報を受信します。
ここで問題となるのは、その情報をpic18のeepromに保存し、128x64のグラフィックディスプレイで操作した後にその情報を表示する必要があるということです。