如何配置串行端口并与之通信?[已关闭]
我需要通过串行连接(RS-232 和 RS-422)发送和接收数据。
如何设置此类连接并与之通信?如何确定配置设置(例如波特率)应该是什么,以及如何设置它们?
特别是我希望在Java,C / C++或主要的Unix shell之一中做到这一点,但我对使用Windows / Hyperterminal的串行编程也有一些兴趣。
我需要通过串行连接(RS-232 和 RS-422)发送和接收数据。
如何设置此类连接并与之通信?如何确定配置设置(例如波特率)应该是什么,以及如何设置它们?
特别是我希望在Java,C / C++或主要的Unix shell之一中做到这一点,但我对使用Windows / Hyperterminal的串行编程也有一些兴趣。
建造一台时间机器,回到1987年?呵呵。
好吧,没有更多尖酸刻薄的评论。
我如何确定配置设置(例如波特率)应该是什么...
阅读数据表?好吧,好吧。说真的,最后一个。如果您不知道尝试与之通信的设备的波特率,则有两种选择。开始猜测,或者可能打破一个o-scope。如果您需要一个好的起点,让我建议9600-8-N-1。我怀疑你可以用蛮力相对快速地到达那里。还有第三种选择,那就是让一个老派的忍者,他可以通过以某种标准波特率查看乱码字符的外观来判断实际的波特率是多少。可以肯定的是,这是一个令人印象深刻的派对技巧。
希望您有权访问此信息。在unix/linux中,你可以获得minicom直接玩串行端口。这应该可以相当快地弄清楚配置。
主要的 Unix shell 之一
在 Unix 中,串行端口是 /are 文件映射到 /dev/ 子目录中的。例如,ttyS0。如果您使用minicom设置了正确的波特率,则甚至可以将内容发送到该文件以将内容发送到那里。
关于问题的实质,您可以通过POSIX标头以编程方式访问它。termios.h是最大的一个。
请参见:http://www.easysw.com/~mike/serial/serial.html#3_1(不再可用)
但我对使用Windows / Hyperterminal的串行编程也有一些兴趣。
超级终端和微型通信基本上是相同的程序。至于Windows如何让你访问串行端口,我会把这个问题留给其他人。自Win95天以来,我还没有在Windows中这样做过。
如果你想用Java编写代码,我真的推荐SerialIOs SerialPort。它非常易于使用,可以节省您几天的工作。我从来没有找到一个像SerialIO这样好的开源库,真的!
我的建议:不要使用Sun的串行IO框架!它来自1998年,充满了错误。你可以使用rxtx,但Serialio更好!