Войти

Показать полную графическую версию : Работа с UART


evpu
26-12-2015, 11:44
Добрый день!

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

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

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

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




© OSzone.net 2001-2012