了解串行设备设置

时间:2015-11-25 14:09:38

标签: serial-port

如果这个问题已经得到解答,请随时给我打电话并发送链接;我无法找到它。我做了搜索。

我一直在使用串行设备进行故障排除。在查看大量文档时,我现在了解"波特率的设置," "数据位," "停止位,"和"平价"意思。但我似乎无法理解的是谁(发件人或接收者)确定了这些设置。

说我有一个串行设备插入我的电脑。在我的代码中,我打开了与串口的连接,并指定了类似9600,8,E,1的内容。当我指定这些设置时,这些设置是否会被发送到发送本身,以便它知道如何将数据发送到我的接收器?或者发送者希望接收者遵守严格的设置更常见吗?

我遇到的问题是我试图使用" Even"平价,导致大量的不规则转移错误。当我使用" Odd"然而,这些错误会消失。我的设置中还涉及USB转串口适配器。如果没有中间的适配器,偶数或奇数奇偶校验都不会有任何传输错误。因此,我很难理解设备本身是否支持使用偶数奇偶校验发送,或者适配器是否会导致问题,等等。

感谢。

1 个答案:

答案 0 :(得分:0)

  

当我指定这些设置时,是否会将这些设置发送到发送本身,以便它知道如何将数据发送到我的接收器?

没有

为了扩展Hans Passant的评论,串口的双方必须就设置达成一致,否则他们不会互相交谈。如果他们不同意,您将获得任何一方的乱码数据,因为硬件将在不正确的时间读取数据。这些设置通常记录在您尝试与之通信的设备的手册中。例如,要与Cisco路由器通信,通常使用following settings

Bits per sec    :  9600 
Data bits       :     8 
Parity          :  none 
Stop bits       :     1 
Flow control    :  none 

当你设置串口时,你必须使用这些相同的设置,两个设备之间没有硬件级握手,决定了它们的通信速度。

有时,串行端口设置的格式可能会采用以下格式:

9600,8,N,1

这只是上述引用的简写(9600波特,8个数据位,无奇偶校验,1个停止位)

根据我的经验,大多数设备默认为9600,8,N,1,下一个常见的串行设置为115200,8,N,1