多个进程可以访问一个 Linux 设备串行端口吗?



我正在使用Raspberry Pi 3,它可以在/dev/ttyAMA0上与Arduino进行通信。

我可以通过minicom双向与Arduino交谈。但是,基于 Python 的服务器也需要此端口。我注意到当minicom运行时,python代码可以写入serial0,但不能从中读取。至少Mincom报告python服务器已经发送了一条消息。

此串行端口如何处理争用(如果有的话(? 我注意到对同一串行端口运行两个 minicom 会话会破坏两个会话。如果协调他们不同时行动,是否有可能有多个作家和读者?或者可以有多个读者?

由于两个小通信可以尝试使用该端口并且存在冲突,因此小通信不得对串行端口的本地写入设置咨询锁。 我猜第一个读取收到的远程串行消息的应用程序会清除它,因为串行不会缓冲。 当本地应用程序写入串行时,minicom 会显示此内容并发送。 我将做出这个假设的总结

  1. 当本地进程将消息放在串行端口上时,每个人都可以 看到它,它就会被发送到远程。
  2. 当远程消息到达时 串行,第一个获取它的本地进程,得到它。 其他 看不出来。
  3. 出于某种原因,小通有到达的特权 消息。 这就是为什么两个小通信打破了这个信息。

最新更新