Есть ли способ проверить, какая скорость передачи данных поддерживается для последовательного устройства в Linux?
Я просмотрел каталог /sys/class/tty/ttyS0
, но не вижу там ничего такого, что перечисляет информацию такого типа.
Есть ли способ проверить, какая скорость передачи данных поддерживается для последовательного устройства в Linux?
Я просмотрел каталог /sys/class/tty/ttyS0
, но не вижу там ничего такого, что перечисляет информацию такого типа.
Вы можете проверить скорость передачи устройства с помощью команды "stty" на консоли:
$ stty < /dev/tty.. (where tty... is the device file you are listening)
выход:
speed 9600 baud; line = 0;
-brkint -imaxbel
Вы также можете изменить скорость передачи данных с помощью следующей команды:
$ sudo stty -F /dev/tty... 9600 (or whatever baud rate number)
Вы, кажется, задаете два разных вопроса.
Есть ли способ проверить, какая скорость передачи данных поддерживается на последовательном устройстве?
Ответ будет зависеть от (1) возможностей аппаратного обеспечения, то есть UART/USART/SCC, и диапазона делителей, которые драйвер устройства может использовать в генераторе скорости передачи; сверьтесь с паспортом устройства; (2) частота тактового генератора / генератора, подключенного к устройству последовательного порта; обратитесь к документации совета.
Есть ли способ проверить, какие скорости передачи поддерживаются в Linux?
Одна из определенных скоростей передачи в include/asm-generic/termbits.h
для члена c_cflag структуры управления терминалом является типичным методом, который драйвер устройства последовательного порта (т.е. UART/USART) принимает для значения конфигурации скорости передачи.
#define B0 0000000 /* hang up */
#define B50 0000001
#define B75 0000002
#define B110 0000003
#define B134 0000004
#define B150 0000005
#define B200 0000006
#define B300 0000007
#define B600 0000010
#define B1200 0000011
#define B1800 0000012
#define B2400 0000013
#define B4800 0000014
#define B9600 0000015
#define B19200 0000016
#define B38400 0000017
#define BOTHER 0010000
#define B57600 0010001
#define B115200 0010002
#define B230400 0010003
#define B460800 0010004
#define B500000 0010005
#define B576000 0010006
#define B921600 0010007
#define B1000000 0010010
#define B1152000 0010011
#define B1500000 0010012
#define B2000000 0010013
#define B2500000 0010014
#define B3000000 0010015
#define B3500000 0010016
#define B4000000 0010017
Драйверы последовательного порта, как правило, не имеют каких-либо средств сообщения / рекламы, какая из этих скоростей фактически поддерживается / настраивается / реализуется. Существует значение возможностей для таких атрибутов, как FIFO и спящий режим, но не для скорости передачи. Драйвер может определить вызов ioctl() для настройки (нестандартной) скорости передачи, хотя это сделает программы, использующие его, непереносимыми.