Python 基本串行端口争用

Python 基本串行端口争用,python,serial-port,raspberry-pi3,Python,Serial Port,Raspberry Pi3,我使用的是pi3,它通过serial0(ttyAMA0)与arduino对话 一切都很好。我可以和minicom双向通话。但是,基于python的服务器也需要此端口。我注意到,当minicom运行时,python代码可以写入serial0,但不能从中读取。至少minicom报告python服务器已发送消息 有人能告诉我这个串口是如何处理争用的吗?我注意到在同一个串行端口上运行两个minicom会话会破坏这两个会话。如果协调多个作者和读者不同时行动,是否可能有多个作者和读者?或者可以有多个读卡器(

我使用的是pi3,它通过serial0(ttyAMA0)与arduino对话

一切都很好。我可以和minicom双向通话。但是,基于python的服务器也需要此端口。我注意到,当minicom运行时,python代码可以写入serial0,但不能从中读取。至少minicom报告python服务器已发送消息

有人能告诉我这个串口是如何处理争用的吗?我注意到在同一个串行端口上运行两个minicom会话会破坏这两个会话。如果协调多个作者和读者不同时行动,是否可能有多个作者和读者?或者可以有多个读卡器(几个运行cat/dev/serial0的术语)

我在谷歌上搜索过答案,但大多数点击都是关于使用多个串行端口或让一个串行端口工作的


干杯

因为两个minicom可以尝试使用该端口,并且存在冲突,minicom不得在对串行端口的本地写入上设置建议锁定。我猜第一个读取收到的远程串行消息的应用程序会清除它,因为串行消息没有缓冲区。当本地应用程序写入串行数据时,minicom会显示该数据并将其发送。我要做一个假设的总结

  • 当本地进程在串行端口上放置消息时,每个人都可以 看到它,它就会被发送到远程
  • 当远程消息到达 串行,第一个获取它的本地进程,获取它。其他的 我看不见
  • 出于某种原因,minicom拥有到达的特权 信息。这就是为什么两个迷你们通信会破坏这条信息

  • AFAIK串行端口一次只能由一个应用程序访问,因为串行通信在两个设备之间,通常不能共享/多路复用。当然,可以创建一个协议,允许多个应用程序在串行连接的另一端与多个东西进行通信,但您可能也必须控制其他东西,才能有机会实现这一点。