2016-12-01 8 views
0

Rasp PI 3とWindows PCの間のシリアル通信をpython 3.Xでテストしました。 受信したデータが送信されたデータと一致しませんでした。 Windows PCのソースコードと実行環境は信用できるものでした。 Raspi PIの何か(ソースまたは設定)が間違っていると思った。Rasp PI 3とWindowsのシリアル通信時にデータが変更される

理由と解決方法を教えてください。

これは、Windows PC(受信機)の構成は以下の通りですRaspiのPI 3、については

import time 
import serial 
import binascii 

port = serial.Serial("COM4", baudrate=9600, timeout=0.5) 

while True: 
    rcv = port.read(100) 
    s = bytearray(rcv) 
    for c in s: 
     print(hex(c)) 
    time.sleep(1) 

のコードです。

  1. GPIO番号6,8,10(GPIOスロットのGND、TxD、RxD)ごとにシリアルラインのPC(COM4)がリンクされています。
  2. 1行はのconfig.txtに加え

    dtoverlay = PI3-無効-BT

これは

import time 
import serial 

sp = serial.Serial('/dev/ttyAMA0', 9600, timeout=0.5) 
sp.write(b'\xAA') 

これらをRaspi PI 3(送信者)のソースコードでありますテスト結果(送信データと受信データテーブル)です。

センド:

A9 : 2B 00 
AA : 15 00 
AB : 2A 00 
AC : 0A 00 
AD : 29 00 
AE : 14 00 
AF : 28 00 
AA AA : 95 15 00 

[DIDWEV:]受信20170216.2318.D005.K0.01

答えて

0

をあなたは、単にあなたのパイGPIOに直接RS232インタフェース信号を接続することはできません。 RS232は+/- 12Vの範囲です。 GPIOピンは0-3.3Vの範囲にあり、論理反転も必要です。従来のPC 9ピンまたは25ピンDタイプRS232インターフェイスをPiに接続するには、RS232 <> Piレベル変換が必要です。また、PiまたはGPIOピンを爆発させる恐れがありますが、3.3Vまたはそれ以下の入力電圧に対しては設計されていません。

関連する問題