使用 POSIX 访问半双工串行端口

发布于 2024-07-11 12:13:29 字数 356 浏览 3 评论 0原文

我被要求使用 POSIX 调用读取和写入半双工串行连接(更具体地说,在 Linux 2.6.x 上用 C 编写)。 我在查找有关该特定型号的详细信息时遇到了一些麻烦(大多数页面都集中在全双工),并且由于我在阅读时遇到轻微异常,我想检查一下我是否在这里做错了什么。

使用半双工串行连接,我只能读取或写入。 这不是问题,因为线路上没有未经请求的传入数据 - 任何包裹发送给我(供阅读)的唯一时间是当我事先要求它们时。

所以我的代码所做的就是每当需要发送数据时 write() 到端口。 如果此数据导致响应(我事先知道的事情),我只需 read()。 我没有调用任何特殊函数 - 但也许我应该调用? 而这种做法正确吗? 即当线路空闲时写入?

I'm asked to read from and write to a half-duplex serial connection using POSIX calls (more specifically, writing in C on Linux 2.6.x). I'm having slight troubles finding detailed information on that particular model (most pages concentrate on full-duplex) and as I am getting slight anomalies when reading, I wanted to check whether maybe I am doing something wrong here.

With a half-duplex serial connection, I can only read or write. This is not a problem, as there is no unsolicited incoming data on the line - the only time any packages are sent to me (for reading) is when I asked for them beforehand.

So what my code does is to write() to the port whenever something needs to be sent. Should this data result in a response (something I know beforehand), I simply read(). There are no special functions I am calling - but maybe I should? And is this approach correct? I.e. write when the line is free?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

已下线请稍等 2024-07-18 12:13:29

我会阅读Linux内核源文档,可能有一个关于串行驱动程序的文本文件; 如果没有,您可以通读实际的驱动程序代码以了解它的作用(我保证,它并不像听起来那么可怕!)

I would read the Linux kernel source documentation, there may be a text file about the serial driver; if not, you could read through the actual driver code to see what it does (it's not as scary as it sounds, I promise!)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文