目次
2. ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。
序文
Raspberry Pi には、ハードウェア シリアル ポート (/dev/ttyAMA0) とミニ シリアル ポート (/dev/ttyS0) の 2 つのシリアル ポートがあります。
インターネット上でのハードウェア シリアル ポートとミニ シリアル ポートの紹介は次のとおりです。「ハードウェア シリアル ポート」は独立したボーレート クロック ソースを備え、高いパフォーマンスと信頼性を備えていますが、「ミニ シリアル ポート」は低パフォーマンスでシンプルな機能を備えています。ボー レートには専用のクロック ソースはなく、CPU コア クロックによって提供されるため、「ミニ シリアル ポート」には致命的な弱点があります。コアが消費電力をインテリジェントに調整すると、ボー レートはコア クロックの影響を受けます。メイン周波数を下げるには、ミニ シリアル ポートの対応するボー レートが関係します。
著者は最初にハードウェア シリアル ポート (/dev/ttyAMA0) の使用法を紹介します。
シリアルポートの設定
設定を開始する前に、 Raspberry Pi のシリアル ポートを開き、同時にシリアル コンソールを閉じる必要があります(この方法に限定されません)。
設定後再起動、再起動後に確認するのがベスト
1. シリアルポートの現在の割り当てを問い合わせる
コマンドls /dev/ser* -al を入力してクエリを実行します。
私のものを例にとると、インターフェイスは次のとおりです
これは、システムによって現在割り当てられているデフォルトのシリアル ポートがハードウェア シリアル ポートであることを意味します。シリアル ポート ツールの minicom 設定を直接確認できます。
あなたが私のものと反対の場合は、設定を変更する必要があります。2 を参照してください。ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。
2. ハードウェアのシリアル ポートをデフォルトのシリアル ポートに変更します。
コマンドsudo nano /boot/config.txtを入力します。nano エディターの使用に慣れていない場合は、nano を vi に置き換えて、テキストの最後に次の 2 行を追加します。保存して終了することを忘れないでください。
dtoverlay=pi3-miniuart-bt
force_turbo=1
追加したインターフェースは次のとおりです
この時点で、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も確実にピックアップ!!!
やり方がわからない友達は、下の写真の配線を見て、接続するデュポン線の色を確認して、詰め込んで学ぶことができます。
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 を使用して説明します。