我需要使用 c 以 250kbps 的速度运行我的 /dev/ttyUSB0 (多产的 pl2303 USB-RS232 转换器)。我到处查看,每个人都说最接近的可达到的速度是 230400 bps(http://lxr.linux.no/#linux+v3.9.5/drivers/usb/serial/pl2303.c几行之后(第 325 行)“注意:仅支持 baud_sup 中定义的值!”)。
但我 100% 确定它可以完成,因为在 Windows 上(使用 c# 默认 SerialPort 组件)我可以将 250000 设置为波特率,并且它会很乐意以该速度输出数据(用示波器测量,所以它是没有切换到最近的可用值或 9600,如 Linux 驱动程序第 325 行中所述!)。
有谁知道在linux中设置自定义波特率的方法吗?
在你问之前,我已经开发了一种以 250kbps 进行通信的设备,该速度是必需的,并且是我可以在没有错误的情况下获得的最高速度,所以不,我无法更改它。
这是linux驱动的问题。从line 333到第 348 行,驱动程序强制设置波特率。删除该代码,波特率通过公式计算12*1000*1000*32/波特率,这在 250kbps 时给出了 0% 的错误,完全符合我在 Windows 上得到的结果。我期待改进官方驱动程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)