multithreading之是否可以多次打开串口
我正在设计一个控制系统,它应该通过串行端口处理过多的执行器(或执行器组)。新设计(尚未实现)应该通过多个 POSIX 线程控制执行器。
这是否可以(通过多个线程)多次打开串行端口?
如果是,我将编写同步写入/异步读取机制。会有n
线程 M[0]
至 M[n-1]
可以直接向串口写入数据。他们不应该直接从串口读取。相反,一个线程 R
应该从 while(true)
中的端口读取数据循环并将数据提供给等待它的相应线程。 (唤醒正在等待响应的 M[i]
,当数据准备好并且它属于 i
th 个线程时)
这完全取决于是否可以通过多个线程写入串行端口的问题。
备注 : 我无法测试串口的行为,因为目前我无法访问我大学机电一体化实验室的设备,
我正在使用内核 2.6.38-8 修补了 Xenomai 实时子系统(如果重要的话)
我正在将代码移植到与串行端口通信的传统 Linux 方式。 (打开 /dev/ttyS0
,设置波特率, read()
, write()
等)目前使用第三方库进行串口通话。
请您参考如下方法:
同一个串口只能打开一次。第二次试验失败,拒绝访问。打开端口后,您可以使用端口句柄在不同的线程中使用它。当然,你需要同步这些线程之间的端口访问。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。