Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программирование кпк, CompactFlash Card
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
FAUSTddd
Приобрел у фирмы автограф измерительно-управляющий модуль CompactFlash Card для кпк. В общем штука для подключения внешних цифровых и аналоговых устройств к карманному персональному компьютеру (КПК) с операционной системой Windows CE в комплекте драйвер для нее все дела. В программировании девайсов я ламер, и вот пытаюсь программировать. С иницализацией вроде все просто, есть пример. Но не могу разобраться с параметрами устройства.

Установка параметров устройства

BOOL DeviceIoControl(
HANDLE hDevice,
DWORD dwIoControlCode,
LPVOID lpInBuffer,
DWORD nInBufferSize,
LPVOID lpOutBuffer,
DWORD nOutBufferSize,
LPDWORD lpBytesReturned,
LPOVERLAPPED lpOverlapped);

hDevice – HANDLE устройства
dwIoControlCode – код параметра
lpInBuffer – входной буфер значений параметра
nInBufferSize – размер входного буфера в байтах
lpOutBuffer – выходной буфер значений параметра
nOutBufferSize – размер выходного буфера в байтах
lpBytesReturned – байт в выходном буфере
lpOverlapped – не используется, установить в NULL
Возвращаемое значение - не 0 – успех, иначе ошибка (см.GetLastError() )

Коды параметров:
SERCTL_SET_BAUD_RATE - установка скорости обмена
DWORD - тип входного параметра (4 байта)

SERCTL_GET_BAUD_RATE - запрос скорости обмена
DWORD - тип выходного параметра (4 байта)

SERCTL_SET_FLOW_CONTROL - установка режима передачи
BYTE - тип входного параметра (1 байт)

SERCTL_GET_FLOW_CONTROL - запрос режима передачи
BYTE - тип выходного параметра (1 байт)

Пример:
BYTE ucFlow = FLOWCTL_NONE;
DeviceIoControl( hDevice, SERCTL_SET_FLOW_CONTROL, (LPVOID) &ucFlow, sizeof(BYTE), 0, 0, 0, 0 );
Установлен программный контроль обмена данными.


Не могу понять как выставить частоту передачи данных. Может кто делал чтото подобное поделитесь примерами или обьясните на пальцах что означают параметры и в каких единицах они задаются.
Warlord
Код
DWORD dwBaudRate = ???;
DeviceIoControl( hDevice,SERCTL_SET_BAUD_RATE, (LPVOID) &dwBaudRate, sizeof(DWORD), 0, 0, 0, 0 );

См. хедер, где обявлены коды параметров, там д.б. указано, что слудет посылать в буфере lpInBuffer при dwIoControlCode = SERCTL_SET_BAUD_RATE. Либо хедер в студию.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.