如何配置串口并与串口通信?

Gre*_*ase 46 c++ java unix windows

我需要通过串行连接(RS-232和RS-422)发送和接收数据.

如何设置和连接此类连接?如何确定配置设置(例如波特率)应该是什么以及如何设置它们?

特别是我希望用Java,C/C++或其中一个主要的Unix shell来做这个,但我也对使用Windows/Hyperterminal进行串行编程感兴趣.

Lou*_*ndy 28

建立一个时间机器,回到1987年?何浩

好的,没有更多的讽刺评论.

如何确定配置设置(例如波特率)应该是什么...

阅读数据表?好的好的.说真的,最后一个.如果您不知道要尝试与之通信的设备的波特率,则有两种选择.开始猜测,或者可能破坏o范围.如果您需要一个好的起点,请让我建议9600-8-N-1.我怀疑你可以相对快速地用蛮力到达那里.还有第三种方法可以让一个老派的忍者只能通过一些标准波特率来判断乱码中的字符是什么实际的波特率.令人印象深刻的派对技巧.

希望你能访问这些信息.在unix/linux中,您可以直接使用串口来获取minicom.这应该可以让它很快得到配置.

一个主要的Unix shell

在Unix中,串行端口被文件映射到/ dev/subdir.例如,ttyS0.如果您使用minicom设置了正确的波特率和诸如此类的东西,您甚至可以将该东西写入该文件以发送内容.

在问题的基础上,您可以通过POSIX标头以编程方式访问它.termios.h是最重要的.

请参阅:http ://www.easysw.com/~mike/serial/serial.html#3_1(无法提供任何更多信息)

但我也对使用Windows/Hyperterminal进行串行编程感兴趣.

Hyperterminal和minicom基本上是相同的程序.至于Windows如何让你访问串口,我会把这个问题留给别人.自Win95以来,我在Windows中没有这样做过.


Mar*_*cel 11

如果你想用Java编写代码我真的推荐使用SerialIOs SerialPort.它非常易于使用,可以节省您的工作时间.我从来没有找到像SerialIO一样好的开源库,真的!

我的建议:不要使用Sun的串行IO框架!它是从1998年开始充满虫子的.你可以使用rxtx但是serialio更好!


smh*_*smh 9

对于Windows上的C/C++,您有(至少)两种选择:

  1. 使用.NET提供的SerialPort类.
  2. 使用Win32 API.有一篇可追溯到1995年的MSDN文章,网上有许多免费的图书馆和例子可以帮助您入门.

.NET选项将更容易.


Fer*_*cio 5

如果需要跨平台,我建议您看一下Boost Asio