我有一个USB设备,我正在尝试通过ftdi_sio内核模块提供的虚拟串行端口进行通信。但是,在将端口的波特率设置为14400时遇到了一些麻烦:
termios.h
cfsetispeed
cfsetospeed
TIOCSSERIAL
alt_speed
tty_struct
有人对此有任何想法吗?通过破解内核模块来解决这个问题非常容易,但是我确实在寻找不需要更改内核的解决方案。
您不能更改波特率,我想它与硬件有关。因此,弄乱模块不会对您有任何好处。在您的第三点中,您仅谈论提出的用于设置自定义波特率的第一种方法,您需要在其中访问tty->alt_speed。似乎没有接口可以直接从用户空间设置tty结构,至少没有使用ftdi_sio驱动程序。 但是,注释中还解释了另一种方法:
tty->alt_speed
* 3. You can also set baud rate by setting custom divisor as follows * - set tty->termios->c_cflag speed to B38400 * - call TIOCSSERIAL ioctl with (struct serial_struct) set as * follows: * o flags & ASYNC_SPD_MASK == ASYNC_SPD_CUST * o custom_divisor set to baud_base / your_new_baudrate
你试过了吗?