2016-12-01 21 views
0

我使用python 3.X测试了Rasp PI 3与Windows PC之间的串行通信。 收到的数据与发送的数据不一致。 Windows PC的源代码和运行环境值得信赖。 我认为Raspi PI的某些东西(来源或配置)是错误的。当Rasp PI 3与Windows之间的串行通信时数据发生改变

请让我知道原因以及如何解决它。

这是视窗PC(接收机)

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) 

至于Raspi PI 3的代码,配置以下。

  1. PC(COM4)的串行线在每个GPIO No 6,8,10(GND,TxD,GPIO插槽的RxD)处连接。在config.txt的溶液中加入
  2. 1线

    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

你不能简单地直接连接RS232接口信号到你的皮GPIO。 RS232在+/- 12V范围内。 GPIO引脚的电压范围为0-3.3V,并且还需要逻辑反相器。您需要RS232电平转换来将传统PC 9或25针D型RS232接口连接到Pi。你也冒着吹Pi或GPIO引脚的危险,它们不适用于高于3.3V或低于0V的输入电压。