我需要使用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#默认的串口组件),我可以设置250000波特率,并愉快地将数据以这样的速度(用示波器测量,所以它是没有切换到最接近的可用或9600的描述在325驱动程序的Linux驱动程序!)。
有没有人知道在linux中设置自定义波特率的方法?
而且在你问之前,我已经开发了一个以250kbps速度通信的设备,这个速度是需要的,而且是我可以得到的最高的,没有错误,所以我不能改变它。
这是在Linux驱动程序中的一个问题。 从333行到348行,驱动程序强制波特率。 除去这些代码,波特率计算公式为12 * 1000 * 1000 * 32 /波特率 ,在250kbps时给出0%的误差,完全符合我在Windows上得到的结果。 我期待着改进官方的司机。
其他职位推荐类似于:
// Set baud system("stty -F /dev/ttyUSB0 250000 cs8 -cstopb -parity -icanon min 100 time 1"); // Open file FILE *ComPort = fopen("/dev/ttyUSB0", "r+");
当您尝试将波特率设置为250kbps时会发生什么?