Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Аппаратное обеспечение -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 143

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 137 138 139 140 141 142 < 143 > 144 145 146 147 148 149 .. 168 >> Следующая

той или иной скорости обмена данными, содержится в файле ftdiport.inf,
сопровождающем драйвер. Изменяя эти значения, можно достичь нестандартных
значений скорости работы UART. Однако чаще их приходится изменять, чтобы
учесть, например, отклонение частоты кварцевого резонатора от номинальных
6 МГц.
Чтобы рассчитать нужное значение коэффициента деления, число, вдвое
меньшее частоты кварцевого резонатора (Гц), делят на требуемую скорость
передачи (Бод). Частное округляют до ближайшего числа с дробной частью
0,125, 0,25, 0,5 или до целого числа. Полученное значение необходимо
преобразовать в 16-разрядный двоичный код. В 14 младших разрядов кода
(DO-D13) заносят целую часть коэффициента, а в старшие (D14, D15) -
дробную в соответствии с таблицей. Этот код затем преобразуют в
двухбайтное шестнадцатеричное число.
Работая в системе Windows 98, в разделе [FtdiPort232,HW.AddReg]
упомянутого выше файла ftdiport.inf найдите строку
HKR,,ConfigData,1,01,00,3F,3F,10, 27, 88, 13, С4, 09, Е2, 04, 71, 02, 38,
41, 9с ,80,4Е,СО,34,00,1А, 00,0D,00,06,40,03,80,00,00,00,00
Младший байт каждого коэффициента записан первым, за ним следует старший.
Например, последовательность Е2,04 соответствует числу 4Е2Н. Внеся нужные
изменения, отредактированным файлом заменяют исходный.
Работая в системе Windows 2000, аналогичным образом редактируют такую же
строку в разделе [FtdiPort232.NT.HW.AddReg] того же файла.
ЧАСТЬ V
Справочник
Базовые функции Windows
Рассмотрим базовые функции Windows, такие как открытие и закрытие
объекта, чтение и передача данных, ожидание сигнального состояния
объектов и др.
16.1. Функции CreateFile и CloseHandle: открытие и закрытие объекта
Функция CreateFile открывает объект, а функция CloseHandle - закрывает.
Объектом может являться файл, драйвер, порт, устройство и т. д. Объект
может быть открыт в режиме разделения или эксклюзивно. В этом случае
попытка открыть ресурс еще раз, завершится с ошибкой. Дескриптор,
полученный после вызова CreateFile, должен быть закрыт после
использования ВЫЗОВОМ CloseHandle.
Формат заголовков CreateFile И CloseHandle на языке С имеет следующий
вид:
HANDLE CreateFile(
LPCTSTR lpFileName, // имя объекта
DWORD dwDesiredAccess, // способ доступа
DWORD dwShareMode, // тип совместного доступа
LP_SECURITY_ATTRIBUTES IpSA, // атрибуты защиты
DWORD dwCreationDisposition, // параметры создания
DWORD dw FIagsAndAttributes, // атрибуты
HANDLE ) ; hTemplateFile // дескриптор template-файла
BOOL CloseHandle( HANDLE hObject ) ;
// дескриптор объекта
472
Часть V. Справочник
Формат заголовков CreateFile и CloseHandle на языке Delphi имеет
следующий вид:
function CreateFile(
lpFileName: PChar; // имя объекта
dwDesiredAccess, // способ доступа
dwShareMode: DWORD; // тип совместного доступа
IpSA : PSecurityAttributes; // атрибуты защиты
dwCreationDisposition, // параметры создания
dwFlagsAndAttributes: DWORD; // атрибуты
hTemplateFile: Thandle // дескриптор template-файла
): THandle; function CloseHandle( hObject: THandle // дескриптор
объекта
): BOOL;
16.1.1. Дополнительные сведения
Для нотации языка С строка, передаваемая в функцию CreateFile, должна
иметь дублированные знаки "\", например, \\.\comi выглядеть как WW.Wcomi.
16.1.2. Возвращаемое значение
Если функция CreateFile выполнена успешно, возвращается дескриптор
открытого ресурса. Этот дескриптор используется для доступа к открытому
ресурсу. Если при открытии ресурса произошла ошибка, функция возвращает
значение invalid_handle_value, а подробности можно узнать, вызвав ФУНКЦИЮ
GetLastError.
После использования дескриптор должен быть освобожден вызовом функции
CloseHandle.
Функция CloseHandle возвращает ненулевое значение, если закрытие
дескриптора выполнено успешно, и возвращает 0, если произошла ошибка.
Расширенную информацию об ошибке можно получить с помощью вызова
GetLastError.
16.1.3. Пример вызова
Листинг 16.1 показывает структуру программы, использующей функции
CreateFile/closeHandle ДЛЯ доступа к коммуникационному порту СОМ1.
Глава 16. Базовые функции Windows
473
^|истинг 16.1. Использование функций CreateFiie и CioseHandle
{Переменная для хранения дескриптора порта} var
ComHandle : THandle;
{Открыть порт}
ComHandle;= CreateFile(1\\.\C0M1',
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0
) ;
{Проверить результат}
if ComHandle = INVALID_RANDLE_VALUE then begin
{Ошибка открытия порта, функция GetLastError вернет код ошибки} Exit;
end;
{ ... порт открыт успешно ...}
{ ... использование порта через дескриптор ComHandle ...} {Закрытие
порта}
CioseHandle(ComHandle);
16.2. Функция ReadFile: чтение данных
Функция ReadFile производит синхронное или асинхронное чтение данных.
Формат заголовка ReadFile на языке С имеет следующий вид:
BOOL ReadFile(
hHandle, // дескриптор, полученный от CreateFiie
lpBuffer, // буфер для чтения
nNBTR, // число байт для чтения
Предыдущая << 1 .. 137 138 139 140 141 142 < 143 > 144 145 146 147 148 149 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.