реклама на сайте
подробности

 
 
> Обмен данными по USB, Как открыть USB порт программно и производить обмен данными по нему?
Politeh
сообщение Jun 17 2009, 20:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Добрый день!

Как открыть USB порт программно и производить обмен данными по нему?
Если делать, как указывается в некоторой справочной литаретуре:

SetupDiGetClassDevs
SetupDiEnumDeviceInterfaces
SetupDiGetDeviceInterfaceDetail
CreateFile
WriteFile/ReadFile

То все работает за исключением WriteFile/ReadFile.

У Microsoft сказано, что надо делать еще WinUsb_Initialize, чтобы получит WinUSB handle и далее обмениваться данными посредством WinUsb_WritePipe/WinUsb_ReadPipe. Но не ясно, что надо сделать, чтобы данная функция (WinUsb_Initialize) выполнилась успешно.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex11
сообщение Jun 19 2009, 16:28
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



А класс CDC где? Или он в интерфейсе указан?
Go to the top of the page
 
+Quote Post
Politeh
сообщение Jun 22 2009, 13:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Цитата(Alex11 @ Jun 19 2009, 20:28) *
А класс CDC где? Или он в интерфейсе указан?


Изменил значения под CDC класс и в DeviceDescription и в Interface согласно указанным значениям в msdn
(
- http://msdn.microsoft.com/en-us/library/aa919760.aspx
- http://msdn.microsoft.com/en-us/library/aa930780.aspx
)

/// Device descriptor.
const USBDeviceDescriptor usbDeviceDescriptor = {

sizeof(USBDeviceDescriptor),
USBGenericDescriptor_DEVICE,
USBDeviceDescriptor_USB2_00,
0x2, // No device class code
0, // No device subclass code
0, // No device protocol code
BOARD_USB_ENDPOINTS_MAXPACKETSIZE(0),
0x03EB, // Atmel vendor ID
0x6119, //0001;// Product ID
0x0001, // Product release 0.01
0, // No manufacturer string descriptor
0, // No product string descriptor
0, // No serial number string descriptor
1 // One possible configuration
};

/// Configuration descriptors.
const struct SimpleConfigurationDescriptors configurationDescriptors = {

// Configuration descriptor
{
sizeof(USBConfigurationDescriptor),
USBGenericDescriptor_CONFIGURATION,
sizeof(struct SimpleConfigurationDescriptors),
0, // No interface in this configuration
1, // This is configuration #1
0, // No string descriptor for this configuration
BOARD_USB_BMATTRIBUTES,
USBConfigurationDescriptor_POWER(100)
},
// Interface descriptor
{
sizeof(USBInterfaceDescriptor),
USBGenericDescriptor_INTERFACE,
0, // This is interface #0
0, // This is setting #0 for interface
0, // Interface has no endpoint
0x02, // No interface class code
0x02, // No interface subclass code
0xFF, // No interface protocol code
0, // No string descriptor
}
};

Однако эффект нулевой!
Может еще каки поля не определены?

Спасибо.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 21:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016