Raspberry Pi 初心者 - (5) Raspberry Pi シリアル ポート トランシーバー (ハードウェア シリアル ポート)

目次

序文

シリアルポートの設定

1. シリアルポートの現在の割り当てを問い合わせる

2. ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。

シリアルツールミニコム設定

1.ミニコムをインストールする

2.ミニコムテスト

2.1 配線

2.2 シリアルポートトランシーバーテスト(Python)

2.3 テストの効果


序文

Raspberry Pi には、ハードウェア シリアル ポート (/dev/ttyAMA0) とミニ シリアル ポート (/dev/ttyS0) の 2 つのシリアル ポートがあります。

インターネット上でのハードウェア シリアル ポートとミニ シリアル ポートの紹介は次のとおりです。「ハードウェア シリアル ポート」は独立したボーレート クロック ソースを備え、高いパフォーマンスと信頼性を備えていますが、「ミニ シリアル ポート」は低パフォーマンスでシンプルな機能を備えています。ボー レートには専用のクロック ソースはなく、CPU コア クロックによって提供されるため、「ミニ シリアル ポート」には致命的な弱点があります。コアが消費電力をインテリジェントに調整すると、ボー レートはコア クロックの影響を受けます。メイン周波数を下げるには、ミニ シリアル ポートの対応するボー レートが関係します。

著者は最初にハードウェア シリアル ポート (/dev/ttyAMA0) の使用法を紹介します。

シリアルポートの設定

設定を開始する前に、 Raspberry Pi のシリアル ポートを開き、同時にシリアル コンソールを閉じる必要があります(この方法に限定されません)。

e14fec7d12db41cdb7ca091bc6fcec8f.png

 14950e3c91b74ad2b0df8867d95841f6.png

 設定後再起動、再起動後に確認するのがベスト

1. シリアルポートの現在の割り当てを問い合わせる

コマンドls /dev/ser* -al を入力してクエリを実行します。

私のものを例にとると、インターフェイスは次のとおりです

8affe7f90aa7473c90bcaf2f0f400785.png

これは、システムによって現在割り当てられているデフォルトのシリアル ポートがハードウェア シリアル ポートであることを意味します。シリアル ポート ツールの minicom 設定を直接確認できます。

あなたが私のものと反対の場合は、設定を変更する必要があります。2 を参照してください。ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。

2. ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。

コマンドsudo nano /boot/config.txtを入力します。nano エディターの使用に慣れていない場合は、nano を vi に置き換えて、テキストの最後に次の 2 行を追加します。保存して終了することを忘れないでください。

dtoverlay=pi3-miniuart-bt
force_turbo=1

 追加したインターフェースは次のとおりです

 375a5cbf8e6144bca2be02aeeea94188.png

この時点で、Raspberry Pi を再起動し、コマンドls /dev/ser* -alを入力して、現在のシリアル ポート割り当てをクエリします (作成者は正常に確認しました)。

シリアルツールミニコム設定

1.ミニコムをインストールする

コマンドsudo apt-get install minicom を入力します。

この手順はあまりにも日常的なので、写真は投稿しません

2.ミニコムテスト

2.1 配線

1 つ目は、下の図で丸で囲まれた Raspberry Pi のピン配置を見つけて、USB to ttl の RX を Raspberry Pi の TX に接続し、USB to ttl の TX を Raspberry Pi の TX に接続します。 Raspberry PiのRX、VCC、GNDも確実にピックアップ!

やり方がわからない友達は、下の写真の配線を見て、接続するデュポン線の色を確認して、詰め込んで学ぶことができます。

66d3fe89cca8421d8a9e028c1538fd05.png

9640c1bfed524beabe333d4556532a04.png

 b73039bc0c4a40da8b739a395d9a0b20.png

 

2.2 シリアルポートトランシーバーテスト(Python)

C言語のファイルはコンパイルしてから実行する必要があり、少し面倒でPythonほど便利ではないと感じているので、デモにはPythonを使用することが多いですが、時間があればC言語のプログラムを補足します。言語。

新しいファイルの作成と Python ファイルの実行方法については多くは言いませんが、私の初心者の Raspberry Pi の読み方を知らない友人たち——(3) Raspberry Pi の LED が点灯します (Python, C)

import serial
import time
#open serial
ser = serial.Serial("/dev/ttyAMA0", 115200)#set up serial
def main():
    while True:
        # 获得接收缓冲区字符
        count = ser.inWaiting()
        if count != 0:
            # 读取内容并回显
            recv = ser.read(count)  #树莓派串口接收数据
            ser.write(recv)         #树莓派串口发送数据
        # 清空接收缓冲区
        ser.flushInput()
        # 必要的软件延时
        time.sleep(0.1)
    
if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        if ser != None:
            ser.close()

2.3 テストの効果

ラップトップでシリアル ポート デバッグ ツールを開くだけです。例として XCOM を使用して説明します。

cf8ffee050a94887974499c001e4f953.png

b8a0c966d604497092a1b02ff439132b.png

 

 

 

おすすめ

転載: blog.csdn.net/shenqijiji/article/details/124750376