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

时间:2018-07-02 13:19:34

标签: python serial-port pyserial

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

我正在使用以下天线(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'))

raspy代码的输出:

SETUP
START

START

START

START

1 个答案:

答案 0 :(得分:0)

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

第二:

然后很可能是问题所在,请检查您的代码在MAC上运行,因为您似乎没有进行传输(传输缓冲区0?)。这是正确的端口吗?如果您的任务只是发送(print(“ Outputing reciver buffer:” + str(ser.in_waiting))),为什么会有收据?您正在尝试发送,但是您的接收缓冲区正在增加?我误会了吗? 2.7或3.6是什么python版本?