RS232 raspberry pi

RS232 with raspberry pi

我的问题是在 raspberry pi 和另一个硬件之间进行串行通信。这个硬件的推荐连接方式是说明书上的,我得接,RX,TX,GND,RS,CS。

但是在 raspberry pi 上我们只有 RX、TX,所以我将 RX 和 TX 以及 Pi 的 GNG 连接到这个硬件。 我修改了 Pi 的参数,如 link 所示:here

然后我制作了一个简单的 python 程序来初始化通信并发送数据。 这是代码: 导入序列号,os 端口=serial.Serial("/dev/ttyAMA0",波特率=9600) 打印('port is ok') port.write('Command') 接收=port.read(10) 打印 rcv

在 pi 上 运行 这段代码后,我得到了 ('port is ok'),但问题是这个硬件没有正确响应命令,作为响应,它给了我正常的 OK ,但我得到了一些额外的字符(不可读)。 那是编码的问题吗?有人可以帮忙吗?

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

在串口通信中,有两点需要注意:

  • 如果 link 是双向的,则两个设备必须使用相同的波特率。
  • 在串口上写入数据时,您必须在 write() 之后立即刷新数据。 参考here。 在很多情况下,不需要flush,但是当两个不同的设备必须通信时,它可以解锁comm'。

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