Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16

Работа с FT2232. Список устройств и обмен по USB

09.07.2012, 12:25. Показов 7213. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, необходимо получить список устройств, подключенных к usb порту и выбрать одно для работы чтения/записи. С чего начать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2012, 12:25
Ответы с готовыми решениями:

Получить список USB устройств
Нужно получить список устройсст по классу гуида . Добавлено через 37 минут что бы в дальшейшем к устройству обращаться как к файлу

Получить список USB устройств
Собственно нужно получить список USB устройств, подключённых на данный момент. Кто может подсказать?

Получить список USB устройств
Здравствуйте! Есть код программы, который в табличке выдает информацию о подключенных USB устройствах. Но у меня неправильно выводится...

29
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 12:09  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от raxp Посмотреть сообщение
...насчет lib ничего не могу сказать, я всегда просто экспортировал функи из DLL-ки без всяких изысков.
как это сделать?



и еще вопрос, может кто сталкивался с режимом эмуляции шины хоста, там есть целый перечень команд, а я понять не могу что они значат, надо мне это или нет? и можно ли для этого режима использовать обычные FT_read, ft_write?

и еще для записи данных по адресу в цикле и блоками мне нужны потоки? не повиснет у меня все?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 12:25
как это сделать?
смотрите сколько вариантов:
http://msdn.microsoft.com/ru-r... xe9k8.aspx

и еще вопрос, может кто сталкивался с режимом эмуляции шины хоста
вам это не нужно ...по крайней мере, при заданных условиях.

и еще для записи данных по адресу в цикле и блоками мне нужны потоки? не повиснет у меня все?
потоки - это не панацея от всех бед, не зацикливайтесь на них. Реализуйте элементарное чтение-запись для начала.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 12:42  [ТС]
Да у меня как бы задание работы с Ft2232H в режиме MCU Host Bus Emulation Modes. Сказали в этом режиме производить чтение/запись, в цикле и по блокам. вот(((( читаю документ по командам это режима и там ни хрена не понятно(
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 12:58
...вот скажите: какой глубокий смысл переводить в HOST режим - FT2232, если вы с ней работаете из HOST хаба компьютера? FTDI-ка должна быть в слэйве.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 13:09  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
...вот скажите: какой глубокий смысл переводить в HOST режим - FT2232, если вы с ней работаете из HOST хаба компьютера? FTDI-ка должна быть в слэйве.
я наверно кажусь очень глупой(наеврно в этой сфере это так), но мне дали документ по ft2232h, сказали что она должна работать в таком режиме, скиннули документ AN_108 с командами для него, а в английском я полный профан, что смогла по переводчику перевела. установила драйвер, Ft_openex, ft_listdevices Работает, а ft_setbitmode не хочет, не находит ее. я уже почитала все возможные случаи, не помогает.

Добавлено через 1 минуту
raxp, надо читать и писать по 2 байта с начального адреса, думаю какими функциями это делать.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 13:54
а ft_setbitmode не хочет, не находит ее
это потому-что она есть в дровах для FTDI под UFS режим - ftcd2xx.sys (FT2232C, FT232BM and FT245BM Extended API Functions).

Cм. расширенное API

Delphi
1
2
3
4
5
6
// FT2232C, FT232BM and FT245BM Extended API Functions
function FT_GetLatencyTimer(ftHandle: Dword; Latency:Pointer):i; stdcall; External FT_DLL_Name name 'FT_GetLatencyTimer';
function FT_SetLatencyTimer(ftHandle:Dword; Latency:Byte):i; stdcall; External FT_DLL_Name name 'FT_SetLatencyTimer';
function FT_GetBitMode(ftHandle:Dword; BitMode:Pointer):i; stdcall; External FT_DLL_Name name 'FT_GetBitMode';
function FT_SetBitMode(ftHandle:Dword; Mask,Enable:Byte):i; stdcall; External FT_DLL_Name name 'FT_SetBitMode';
function FT_SetUSBParameters(ftHandle:Dword; InSize,OutSize:Dword):i; stdcall; External FT_DLL_Name name 'FT_SetUSBParameters';


читать и писать по 2 байта
а в чем тут проблема, пишите по два байта.
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 14:03  [ТС]
Цитата Сообщение от raxp Посмотреть сообщение
это потому-что она есть в дровах для FTDI под UFS режим - ftcd2xx.sys (FT2232C, FT232BM and FT245BM Extended API Functions).

[SPOILER="Cм. расширенное API"]
.
вот это вообще не понятно, есть она и есть, что мне тогда с ней делать?

Добавлено через 3 минуты
я читала, что смешивать функции из групп в Ftd2xx нельзя(или нежелательно). Тогда что мне делать
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 14:12
...перейти на использование расширенного API. Все прежние функции там имеются:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
//Classic functions
function FT_GetNumDevices(pvArg1:Pointer; pvArg2:Pointer; dwFlags:Dword):i; stdcall; External FT_DLL_Name name 'FT_ListDevices';
function FT_ListDevices(pvArg1:Dword; pvArg2:Pointer; dwFlags:Dword):i; stdcall; External FT_DLL_Name name 'FT_ListDevices';
function FT_Open(Index:Integer; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Open';
function FT_OpenEx(pvArg1:Pointer; dwFlags:Dword; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_OpenEx';
function FT_OpenByLocation(pvArg1:DWord; dwFlags:Dword; ftHandle:Pointer):i; stdcall; External FT_DLL_Name name 'FT_OpenEx';
function FT_Close(ftHandle:Dword):i; stdcall; External FT_DLL_Name name 'FT_Close';
function FT_Read(ftHandle:Dword; FTInBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Read';
function FT_Write(ftHandle:Dword; FTOutBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Write';
function FT_ResetDevice(ftHandle:Dword):i; stdcall; External FT_DLL_Name name 'FT_ResetDevice';
function FT_SetBaudRate(ftHandle:Dword; BaudRate:DWord):i; stdcall; External FT_DLL_Name name 'FT_SetBaudRate';
...
0
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 16
13.07.2012, 14:17  [ТС]
у меня еще проблема, есть memo, в котором записаны данные в шестнадцаричном виде, по строкам, 5А,2C и т.д. и адрес в edit, я пытаюсь перевести из одного типа в другой а он мне кучу ошибок выдает, там в функция имеет вид
FT_STATUS FT_Write (FT_HANDLE ftHandle, LPVOID lpBuffer, DWORD dwBytesToWrite,
LPDWORD lpdwBytesWritten)
LPVOID lpBuffer - что надо записать в этот указатель?
с третий параметром примерно понятно (я записываю 2(по идее 2 байта будет записано)).
с четвертым не понятно.
и куда вводить адрес по которому записывать на шину, и куда вводить само значение?

Добавлено через 2 минуты
Цитата Сообщение от raxp Посмотреть сообщение
...перейти на использование расширенного API. Все прежние функции там имеются:
а для с++ тоже самое?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
13.07.2012, 15:13
Delphi
1
function FT_Write(ftHandle:Dword; FTOutBuf:Pointer; BufferSize:LongInt; ResultPtr:Pointer):i; stdcall; External FT_DLL_Name name 'FT_Write';
LPVOID lpBuffer - указатель на буфер с вашими двумя байтами
LPDWORD lpdwBytesWritten - указатель на возвращаемое значение

Пример:
Delphi
1
2
3
4
5
6
var    FT_In_Buffer : Array[0..$1000-1] of Byte;
   FT_Out_Buffer : Array[0..$1000-1] of Byte;
...
FT_IO_Status := FT_Read(FT_Handle,@FT_In_Buffer,Read_Count,@Read_Result);
...
FT_IO_Status := FT_Write(FT_Handle,@FT_Out_Buffer,Write_Count,@Write_Result);
теперь смысл ясен?

и куда вводить адрес по которому записывать на шину, и куда вводить само значение?
FT_Open(DevIndex, @FT_Handle) ...если под адресом вы подразумеваете найденное n-е FTDI устройство на шине, и вот этот самый хэндл - есть указатель на устройство, которое вы будете использовать для FT_WRITE_READ().

а для с++ тоже самое?
язык не имеет значения, экспортируемые функции идут от одного и того же драйвера.

есть memo, в котором записаны данные в шестнадцаричном виде, по строкам, 5А,2C и т.д. и адрес в edit, я пытаюсь перевести из одного типа в другой а он мне кучу ошибок выдае
как пытаетесь? Что за адрес в Edit: адрес FTDI-ки (хэндл, номер) или адрес устройства, подключенного к FTDI-ке?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.07.2012, 15:13
Помогаю со студенческими работами здесь

Получить список устройств, подключенных по USB
Написать прогу, которая получает список подключенных по usb, т.е. нужно подключиться к соответствующему устройству, считать и передать на...

Получить список устройств, подключенных к USB
Доброго времени суток. Пытаюсь получить список устройств подключенных к USB import java.io.UnsupportedEncodingException; import...

Как вывести список usb-устройств, сгруппированных по idVendor?
Нужно написать скрипт, чтобы вывести список usb-устройств, сгруппированных по idVendor. Примерный вывод, который должен получиться: ...

Нестабильная работа USB-устройств
коротко говоря, устройства, которые одновременно открываются как память и заряжаются, подключаются и сразу отключаются

Работа с эндпоинтами устройств USB и setupapi
Как читать и записывать данные в эндпоинты EP0in, EP0out, EPi in, EPi out устройств USB , как правильно пользоваться setupapi.pas ? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru