Is there a way to get supported baud rates in C?
我有一个应用程序在PC和带有运行uCLinux的微控制器的电路板之间进行通讯。当我通过
在PC端,我使用提供的波特率:
1 2 | Serial<id=0x1efb320, open=True>(port='COM4', baudrate=9600, bytesize=8, parity=' N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False) |
在Linux板上,我在代码中设置了相同的波特率:
1 2 3 4 5 | tcgetattr(fd, &options); cfsetispeed(&options, 9600); cfsetospeed(&options, 9600); tcsetattr(fd, TCSANOW, &options); tcgetattr(fd, &options); |
当我测试PC(Win 7)-> Linux Box(OpenSuse)时,这对我有用,因此我知道理论是正确的。现在,我已经将其移植到了我的真实目标(运行uCLinux的Coldfire微控制器板)上,我开始遇到垃圾了。
因此,我的第一个选择是"猜测并检查"各种波特率,以查看是否可以找到合适的波特率,但我不想以编程方式找到一种方法来识别特定目标支持的波特率。
我确定有一些API,但是我还没有找到。有想法吗?
编辑:
似乎可以通过COMMPROP结构在Windows上获得最大波特率。 Linux上是否还存在类似的东西?
请阅读
要确定是否支持特定速率,只需将其设置为