C/C++ - Работа с UART

Ответить
Аватара пользователя
evpu

C/C++ - Работа с UART

Сообщение evpu »

Добрый день!



Подскажите что-нибудь фундаментальное, где можно прочитать про работу с UART на чистом С на десктопах(ПК в смысле...) Не МК и не ардуины и пр.(это отдельная тема)



Столкнулся с рядом нюансов с FT232... В частности, хочу знать:



Есть функция, допустим, read(fd,recvbuf,12). 3-й аргумент - количество считываемого за раз блока. Мне жизненно важно знать, настраивается ли временной интервал атомарного чтения в пределах этой цифры? Если допустим, устройство передает процентов на 40 медленнее чем читает драйвер в процессе read(), а мне хочется весь посыл непременно уложить в одно чтение.



А почему? Можно читать по 1 байту, в цикле длиной в 12 чтений. Можно.

Но тут возникает второй вопрос, на который хочется знать ответ - от чего зависит атомарное время доступа к дескриптору? Получается, что мне надо растянуть чтение всего на 40%(не более), а в цикле - получаются все 400%. Все бы ничего, буфер практически резиновый, данные не теряются, но таких опросов ОЧЕНЬ МНОГО, и терять 300% времени драгоценным милисекунд - очень расточительно.
Ответить

Вернуться в «Программирование и базы данных»