遥测无线电之间的串行通信



几天来我一直在寻找我犯了什么样的错误,但越来越不可能找到解决我错误的方法。我希望你能帮助我,谢谢。

我使用以下天线(https://www.amazon.com/Conjunto-telemetria-radio-sodial-3DROBOTICS/dp/B01EIYFFN0/ref=sr_1_fkmr0_2?ie=UTF8&qid=1530536680&sr=8-2-fkmr0&keywords=3dr+telemetry+radio(将字符串接收到树莓中并通过Macbook传输字符串。问题是我没有得到任何传输的字符串。

MacBook代码如下:

import serial, time
ser = serial.Serial(
port="/dev/tty.usbserial-AH01W3BD",
baudrate=57600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.EIGHTBITS,
xonxoff=True
)
print "START SENDING"
while True:
time.sleep(2)
ser.write(bytes("hello world"))
print("Outputting transmiter buffer: " + str(ser.out_waiting))
print("Outputting reciver buffer: " + str(ser.in_waiting))

此代码在 Mac 中的输出如下:

START SENDING
Outputting transmiter buffer: 0
Outputting reciver buffer: 0
Outputting transmiter buffer: 0
Outputting reciver buffer: 8
Outputting transmiter buffer: 0
Outputting reciver buffer: 16
Outputting transmiter buffer: 0
Outputting reciver buffer: 24

刺耳的代码:

import serial, time
ser = serial.Serial(
port="/dev/ttyAMA0",
baudrate=57600,
timeout=4,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.EIGHTBITS,
xonxoff=True
)
print ("SETUP")
time.sleep(2)
while True:
print ("START")
print(ser.read().decode('utf-8'))

刺耳代码的输出:

SETUP
START
START
START
START

在尝试 2 台设备之间的任何类型的通信之前,我会首先确保每个设备的设置都正常运行。以这种方式定位问题更容易。所以我建议先检查你的raspi是否在发送和接收(你可以连接rx-tx引脚作为一个简单的测试(,这样你就可以从列表中检查出来。还要检查解码以防万一。

第二:

然后很可能是问题所在,请检查您在MAC上运行的代码,因为您似乎没有传输(传输缓冲区0?这是正确的端口吗?如果你的任务只是传输(print("输出接收器缓冲区:"+ str(ser.in_waiting(((????,为什么你会有一个接收您正在尝试传输,但接收缓冲区的大小正在增加?我是不是误会了什么?这是什么 python 版本,2.7 还是 3.6?

最新更新