在Linux上共享串行端口

时间:2013-06-13 17:32:19

标签: c++ linux serial-port raspberry-pi

我正在使用Raspberry Pi进行一个项目,该项目需要能够写入和读取串行端口,但来自不同的程序。程序A需要能够从外围设备A正在发送数据的串行端口读取数据。程序B需要将数据写入串口,外围设备B正在监听(作为参考,在这种情况下,程序A是GPSD,程序B是由我编写的)。程序A永远不需要写,B从不需要阅读。

是否可以让两个程序一次访问该端口?如果没有,是否有可能编写一个程序来创建两个设备节点(将/dev/ttyAMA拆分为/dev/ttyAMA_1/dev/ttyAMA_2,或许?)复用到串口?

提前感谢您的帮助!

马修

2 个答案:

答案 0 :(得分:1)

我相信多个应用程序可以同时访问TTY设备。您从一个用户空间应用程序执行读取操作并从另一个用户空间应用程序执行写入操作这一事实意味着您不太可能遇到问题。

要验证这一点,您可以使用控制台从串口读取串行设备:

cat /dev/ttyS0

如果您打开另一个终端,您可以毫无问题地写入设备:

echo "stuff" > /dev/ttyS0

答案 1 :(得分:0)

如果需要控制消息和响应,则可以使用第三个过程来管理串行端口的访问。就像是: https://stackoverflow.com/a/63537265/4702399