我需要使用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,如325行的linux驱动程序中所述!)。
有没有人知道在linux中设置tat自定义波特率的方法?
在你问之前,我开发了一个以250kbps通信的设备,这个速度是必需的,并且是我能得到的最高速度,所以我不能改变它。
答案 0 :(得分:3)
这是linux驱动程序中的一个问题。从line 333到348行,驱动程序强制执行波特率。删除该代码后,波特率将使用公式12*1000*1000*32 / baud进行计算,并且在250kbps时出现0%的错误,与我在Windows上获得的结果完全一致。我期待着改善官方司机。