我用python3.x测试了Rasp 3和Windows之间的串行通信,接收到的数据与发送的数据不一样。Windows PC的源代码和运行环境是可信的。我认为Raspi PI的某些东西(来源或配置)是错误的。
请让我知道原因和如何解决它。
这是Windows (接收机)的代码
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,配置如下。
这是Raspi PI 3(发件人)的源代码。
import time
import serial
sp = serial.Serial('/dev/ttyAMA0', 9600, timeout=0.5)
sp.write(b'\xAA')这些是测试结果(发送的数据和接收到的数据表)。
发送:接收
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 00DIDWEV:20170216.2318.D005.K0.01
发布于 2016-12-02 11:35:26
您不能简单地将RS232接口信号直接连接到您的Pi GPIO。RS232在+/-12V范围内。GPIO引脚在0-3.3V的范围内,也需要一个逻辑反转。您需要一个RS232<>Pi电平转换,以连接一个传统的PC 9-或25引脚D型RS232接口到Pi.你也是冒着炸掉Pi或GPIO引脚的危险,它们不是为3.3V或0V以下的输入电压而设计的。
https://stackoverflow.com/questions/40901393
复制相似问题