問題タブ [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.
iso - ISO 7816 (SIM カード) プロトコル
T=1 で ISO 7816 プロトコルを使用するデバイスと通信しようとしています。私のハードウェア セットアップは、SIM カード モードで構成された USART を使用するマイクロ コントローラーです。関連ドキュメントを読みましたが、ATR の後に何が起こるか不明です。
私が理解している限り、入力周波数は ATR の初期 F=372、D=1 で使用されています。したがって、入力周波数が 3.571MHz の場合、ATR 応答は 9600 ボーで返されます。これは、USART を監視するスコープと TTL ケーブルで私が見たものです。これは正しいです?
ATRの結果を見ると、F=372、D=12となっています。これは、カードへの通信のボー レートがまだ 9600 ボーであることを意味しますか、それとも ATR @ 返されたボー レート パラメータ、つまり 115 kbaud を受信した後、すべてのメッセージを送信する必要がありますか? PPS は 9600 ボーで動作するようですが、カードが実際に実行されているインターフェイスとは異なるボーレートで F と D が返される理由がわかりません。
答えはおそらく「いいえ」ですが、PPS と ATR は、ISO7816 の他のコマンドとは異なるボーレートで実行されますか?
stm32 - STM32F0 Discovery USART が間違った値を送信する
私は STM32 の世界で最初の一歩を踏み出していますが、かなり大変です。私はディスカバリーボードを運営しています。それらからGPIOと割り込みを制御する方法を学んだとき、USARTで遊ぶことにしました。そしてここから地獄が始まりました。シリアル通信のような単純なことに 2 晩格闘しました!
私が持っているもの:
- 構成された GPIO
- 構成された USART
- 標準 STM ライブラリからのクロック - HSI 48 MHz
- PuTTYに文字が表示されます
- テスト済みの伝送パラメータ: 8N1 9600 および 115200
コードからわかるように、「_」が表示されている間に「A」の文字が表示されることを期待しています。私の意見では、ボーレートの問題ですが、この間違った文字しか得られません。BRR を完全に間違った値に変更すると、いくつかのジャンク文字が表示されます。
どんなアイデアでも大歓迎です!
arduino - whileループ外のArduinoループ機能
ここで明らかな何かが欠けているかもしれませんが、Arduino を使用して UART 経由で通信しています。Arduino ライブラリ関数を使用できないため、メッセージを出力するには、独自の書き込み関数を作成する必要があります。私はそれを行うことができ、それは機能します。問題は、プログラムの残りの部分にループ構造を含めると、ループ内になくてもメッセージの出力が停止しないことです。これが私のコードです:
python - Python が 1 つの複数桁の数字を複数行に出力するのはなぜですか?
USART経由でAtmega32(マイクロコントローラー)から2進数を受け取り、それを出力に出力するプログラムをPythonで作成しました。
一方、My Atmega32 は、割り込みの発生時に PINA を読み取り、その値を USART を使用してコンピューターに送信します。
これは私のpythonプログラムです:
( 700000111
に等しい)の方法で PINA ピンを接続すると、Python で以下の出力が表示されます。
しかし、( 13510000111
に等しい)ようにPINAピンを接続すると、pythonで以下の出力が表示されます。
上記のように、3 行で135が出力されます。なんで?
参考までに:これは、CodeVisionでAtmega32用に作成したプログラムです。
更新: 回答で提案されているように、ATMEGA 側と Python 側のプログラムを変更します。
私のAVR割り込みルーチン:
そして、これはpythonでの私の出力です:
ご覧のとおり、出力は AVR コードと Python コードから期待したものではありません!
pic - RS232 を使用するように PIC18f2455 を構成する
RS232 で PIC18f2455 の USART を使用していますが、設定に問題があります。
24 MHz 水晶発振器を使用しています。PLL は 6 のプリスケーラ (入力で 4MHz を設定するため) で有効になり、出力で固定の 96 MHz を提供します。ポストスケーラは 6 に設定され、最後にマイクロコントローラ クロックに 16MHz を与えます。
このクロックを使用して、OpenUSART 関数の SPBRG を 25 に設定し、ボーレートを 9600 に設定しました。
これは私の USART 設定です:
#pragma config PLLDIV = 6, CPUDIV = OSC4_PLL6, USBDIV = 2, FOSC = HSPLL_HS
OpenUSART(USART_TX_INT_ON & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_LOW, 25);
OpenUSART関数でスタックしています...
microchip - dsPic 受信 11 バイトの usart 文字列
dsPic33 を使用して、11 バイトの文字列を受信して配列に配置しようとしていますが、完全に受信することに成功していません。私が送信する文字列は "$123456789#" で、pic が受け取るはずです。以下のコードを使用してみました。どんな助けでも大歓迎です。
arm - STM32F407 UART が端末にガベージを与える
STM32f407 Discovery ボードで冒険を始めたばかりです。CoIDE の最新の安定リリースを使用し、最新のツールチェーン/ライブラリを使用しています。
ボードからUSART1を使用するために、次のコードを書くことができました
}
また、HSE およびその他のクロックの詳細を設定して、クロックが正しく構成されていることを確認しました。
また、
コンソールでガベージを受け取るだけで、セットアップが正しいことを確認するために次のことを行いました: - USB-RS232 コンバータをチェックしました - コンバータと STM32 ボードを切り替えました - コンバータを切り替えました - STM32CubeMX を使用して生成されたコードを比較し、一貫しているように見えます (ロジックもちろん賢明です:))
私の初心者の観点からは、それは一種の「ショーストッパー」です:(私はこれの根本的な原因を見つけることができないようです
どんな助けでもいただければ幸いです
更新 1 : 根本原因を見つけるために、他の USART モジュールのいずれかを試すことにしました。以下はUSART3の私のコードで、これは最初の質問でUSART1の誤った初期化につながる可能性がありますか?
{
}
解決策: 掘り下げて複数のことを試した後、USART1 が USB コンポーネントと衝突し、ST フォーラムで回答するために伝送リンクと衝突するコンデンサーが存在するようです。
以前にドキュメントのどこかでこれを見つけていたらよかったのにと思います。
これが誰かの助けになることを願っています。
c - USART 間違ったデータが入ってくる
Atmega162
との間の通信を書いていPC
ます。
私には( によって変換された)PCB
インターフェイスがあり、トランシーバーを介して に送られます。RS485
RS422
MAX485
ADAM-4520
COM port
私は端末で自分のプログラムをテストしてきましたが、からの文字の送信はMCU
正常に機能しますが、からの受信PC
は変更されているのは奇妙に思えます(この変換のスキームを理解できません)。
たとえば、これらの ASCII 文字は次のように解釈されます。
いくつかの伝送パラメータについてテストしてきましたが、役に立たないようです。ソースコードは次のとおりです。
PD4
送信と受信を切り替えます。