我有一个 USB 设备,我试图通过 ftdi_sio 内核模块提供的虚拟串行端口与之通信。但是,我在将端口的波特率设置为 14400 时遇到了一些问题:
termios.h
没有为 14400 指定常量,所以我不能使用cfsetispeed
andcfsetospeed
。- 在 ftdi_sio 内核模块的源代码中,波特基设置为 24000000,似乎没有办法改变它。这意味着我不能对
TIOCSSERIAL
ioctl 使用自定义除数并以这种方式获得 14400 波特率。 - 模块源有一条评论,听起来好像将端口结构的
alt_speed
成员设置tty_struct
为 14400 会做我想做的事,但鉴于现有接口,似乎没有任何方法可以将其设置为 14400。
有人对此有任何想法吗?通过破解内核模块很容易解决这个问题,但我真的在寻找一种不需要内核更改的解决方案。