大家,我正在使用 Ubuntu 下的高速 RS422 pci 板(OXPCIe958)。该设备可以以高达 15Mbps 的速度工作。我需要以 10Mbps 的速度工作,但我注意到在 Linux 下,如果我们使用 termois,可以指定的最大速度为 B4000000(4 Mbps)。
有没有办法在linux中指定自定义波特率?我尝试更改 termois.h 中的值:
#define B1152000 0010011
#define B1500000 0010012
#define B2000000 0010013
#define B2500000 0010014
#define B3000000 0010015
#define B3500000 0010016
#define B4000000 0010017 --> by default this is the last value
#define B4500000 0010018 --> Added
#define B5000000 0010020 --> Added
//#define __MAX_BAUD B4000000 --> Default value
#define __MAX_BAUD B10000000
但改变不起作用。我无法理解分配给 BXXXXXX 的值的含义!!
该设备在 linux 上原生运行,无需指定驱动程序。查看设备的数据表,我看到要指定目标波特率,我们必须设置一些寄存器来更改预分频器、锁存器除数和采样时钟。
根据数据表,波特率由下式给出:
波特率 = inputclock/(sampleClock*divisor*prescaler)
有没有办法在linux下设置这个寄存器?驱动程序在 8250.c 和 8250_pci.c
提前致谢