Коммуникация RS-232 иногда использует 9-разрядные байты. Это может использоваться для общения с несколькими микроконтроллерами на шине, где 8 битов являются данными, и дополнительный бит указывает на адресный байт (а не данные). Неактивные контроллеры только генерируют прерывание для адресных байтов.
Программа Linux может отправить и получить 9-разрядные байты по последовательному устройству? Как?
Система termios не поддерживает напрямую 9-битные операции, но в некоторых системах ее можно эмулировать, играя трюками с флагом CMSPAR. Это недокументировано, и я не во всех реализациях.
Вот ссылка на подробное описание того, как выполняется 9-битная эмуляция:
Может ли программа Linux отправлять и получать 9-битные байты через последовательное устройство ?
Стандартное оборудование UART (8251 и т. Д.) Не поддерживает режимы 9-битных данных.