0

私は arduino uno の rx および tx ピンを使用して、rs485 デバイスから ASCII 文字列を受信し、送信間 0.100 秒で 2400 ボーで送信し、その文字列の特定の部分を解析して、arduino に接続された 16x2 LCD に出力しようとしています。 .. スコープで確認したところ、rx ピン 0-5vdc 方形波に入っているデータ文字列を取得しています。rs485 ascii 文字列をバッファに受け取るためのサンプル コードを持っている人は誰でも役に立ちます。

4

1 に答える 1

1

RS485、RS422、および RS232 は、ハードウェア リンク層の異なるスキームです。つまり、これらの仕様は、ワイヤ上にあるものだけを説明しています。トランシーバー チップセットは、ワイヤ信号を Arduino またはその他のデバイスに接続されているロジック レベル信号に変換します。Arduino が認識するロジック レベルでは、どの RS___ 信号も同じように見えます。

USART は、ビット ストリームをバイトに変換します (これは、ソフトウェアまたはハードウェアである可能性があります)。USART はワイヤ上の信号レベルを認識せず、論理レベルのビット ストリームのみで動作します。UNO には、TxRx ピンで利用できる 1 つの USART が含まれています。

したがって、マイクロコントローラ上のコードは、RS232 または RS485 と異なる必要はありません。表示されるすべてのシリアル コード サンプルは正常に機能します。シリアル ライブラリのボー、ストップ ビット、およびパリティを指定すれば完了です。シリアル接続を 2400 に設定すると、Arduino は文字を認識し始めます。


警告

RS485 は、半二重モードで使用されることがあります。つまり、受信と送信を同時に行うことはできません。半二重で配線している場合は、他のデバイスがまだ送信している間は送信していないことを確認する必要があります。

于 2013-08-17T05:04:21.710 に答える