首页 文章

RS232与覆盆子pi

提问于
浏览
1

我的问题是在raspberry pi和另一个硬件之间进行串行通信 . 该硬件的推荐连接如手册所示,我必须连接,RX,TX,GND,RS和CS .

但是在树莓派上我们只有RX,TX所以我将RX和TX以及Pi的GNG连接到这个硬件上 . 我修改了Pi的参数,如链接所示:here

然后我做了一个简单的python程序,初始化通信,并发送数据 . 这是代码:import serial,os port = serial.Serial(“/ dev / ttyAMA0”,baudrate = 9600)print('port is ok')port.write('Command')rcv = port.read(10)打印rcv

在pi上运行此代码之后,我得到了('端口没问题'),但问题是这个硬件没有正确响应命令,并且因为它通常给我正常,但是我得到了一些额外的特性(非可读的) . 这是编码问题吗?有人可以帮忙吗?

2 回答

  • 1

    您需要检查其他硬件上的波特率,或确保收到的消息的长度=打印消息 .

  • 1

    在串行通信中,有两个要注意的重要事项:

    • 如果链路是双向的,则两个设备必须使用相同的波特率 .

    • 在串行上写入数据时,必须在write()之后立即刷新数据 . 请参考here . 在很多情况下,flush isn 't needed, but when two different devices have to communicate, it could unlock the comm' .

    如果效率不高,请尝试使用相同的conf设置其他设备(无流量控制等)

相关问题