multithreading之是否可以多次打开串口

zlslch 阅读:66 2025-04-02 23:11:03 评论:0

我正在设计一个控制系统,它应该通过串行端口处理过多的执行器(或执行器组)。新设计(尚未实现)应该通过多个 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.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号