Сб мар 10, 2012 02:02:53
Сб мар 10, 2012 11:04:43
Попробуйте найти этим кодом (скомпилированная программа во вложении).AaNnDdRrEeYy писал(а):программа на хосте которая работает не видит его нифига
x=HID_Lib_OpenDevice($5DF, $16C0)
If x
MessageRequester("", "Девайс найден.")
HID_Lib_CloseDevice(x)
Else
MessageRequester("", "Девайса нет.", #MB_OK|#MB_ICONINFORMATION)
EndIf
End
Сб мар 10, 2012 11:44:16
if ( hid.GetConnectedDeviceName() == exampleDeviceName )
{
res = 1;
break;
}
#include <stdio.h>
#include "hidlibrary.h"
#include "usbconfig.h"
char vendorName[] = {USB_CFG_VENDOR_NAME, 0};
char productName[] = {USB_CFG_DEVICE_NAME, 0};
struct dataexchange_t
{
unsigned char b1;
unsigned char b2;
unsigned char b3;
};
struct dataexchange_t pdata = {0, 0, 0};
HIDLibrary <dataexchange_t> hid;
int connect()
{
int i, n, res=0;
string exampleDeviceName = "";
exampleDeviceName += vendorName;
exampleDeviceName += " ";
exampleDeviceName += productName;
n = hid.EnumerateHIDDevices();
for (i=0; i<n; i++)
{
hid.Connect(i);
string nd ="";
nd = hid.GetConnectedDeviceName();
if ( nd == exampleDeviceName )
{
res = 1;
break;
}
}
return res;
}
void ResieveData()
{
hid.ReceiveData(&pdata);
if (pdata.b1)
{printf("led 1 - on\n");}
else
{printf("led 1 - off\n");}
if (pdata.b2)
{printf("led 2 - on\n");}
else
{printf("led 2 - off\n");}
if (pdata.b3)
{printf("led 3 - on\n");}
else
{printf("led 3 - off\n");}
}
int main ()
{
printf ("\n connecting...\n");
int conn =0;
conn = connect();
if(conn==1)
{
printf ("Send data\n");
//зажигаем два крайних светодиода
pdata.b1 = 1;
pdata.b2 = 0;
pdata.b3 = 1;
hid.SendData(&pdata);
ResieveData();
}
else
{
printf ("not found :(\n");
}
return 0;
}
}
Чт мар 15, 2012 20:27:26
Вт ноя 20, 2012 17:06:00
Вт ноя 20, 2012 22:08:54
Вт июн 18, 2013 16:25:35
Зукс писал(а):Уже разобрался. Нужно было апдейт на билдер скачать
Пт июл 17, 2015 05:00:03
private void button1_Click(object sender, EventArgs e)
{
// Передать пакет, который включает светодиод на макетной плате AVR-USB-MEGA16.
UsbSetupPacket packet = new UsbSetupPacket((byte)(UsbCtrlFlags.RequestType_Vendor |
UsbCtrlFlags.Recipient_Device | UsbCtrlFlags.Direction_Out), 1, (short)1, 0, 0);
int countIn;
byte[] data = new byte[1];
MyUsbDevice.ControlTransfer(ref packet, data, 0, out countIn);
}
Ср мар 30, 2016 20:56:28
int connect() // этой функцией будем подключаться к устройству
{
int i, n, res = 0;
string exampleDeviceName = "";
exampleDeviceName += vendorName;
exampleDeviceName += " ";
exampleDeviceName += productName;
n = hid.EnumerateHIDDevices();
for (i = 0; i < n; i++){
hid.Connect(i);
if ( hid.GetConnectedDeviceName() == exampleDeviceName ){
res = 1;
break;
}
}
return res;
}
if ( hid.GetConnectedDeviceName() == exampleDeviceName ){
res = 1;
break;
}
Чт авг 10, 2017 20:51:38
Чт авг 10, 2017 22:06:02
Чт авг 10, 2017 22:46:11
Ср сен 06, 2017 08:22:45
Ср сен 06, 2017 11:10:46
Нет не нужно. Если посмотрите эту конструкцию, или этот код все работает без дополнительных драйверов.deemchik писал(а):неужели для HID.DLL (hidlibrary) все равно нужно устанавливать доплнительный драйвер?
Ср сен 06, 2017 13:02:50
sbMsgLen_t usbFunctionSetup(uchar data[8])
{
usbRequest_t *rq = (void *)data;
unsigned char *cmddata = (unsigned char*)&rq->wValue;
//u16 temp;
static unsigned char cmdusbinfo = 0;
if(rq->bRequest == CUSTOM_RQ_SET_STATUS)
{
// Прием команд и данных от хоста
switch(cmddata[0])
{
case USB_SET_WEIT_LOAD:
...
}
}
else if(rq->bRequest == CUSTOM_RQ_GET_STATUS)
{//комнды ответа
...
}
}
// "Отправить данные"
if ( 1 == connect() )
{
pdata.b1 = 1;
pdata.b2 = 0xee;
pdata.b3 = 0;
hid.SendData(&pdata); // Отправляем данные устройству в
}
usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, CUSTOM_RQ_GET_STATUS, 0, 0, buffer, sizeof(buffer), 5000);
Пн фев 12, 2018 20:31:08
Пт апр 13, 2018 13:49:04
Пт апр 13, 2018 15:06:11
Пт апр 13, 2018 17:04:41
Сб апр 14, 2018 14:53:07
Разница в том что для МК обычно можно найти готовый код для USB, который после небольшой корректировки выполняет поставленную задачу без необходимости детально разбираться с работой USB.Wladimir_TS писал(а):Да и там те-же проблемы будут - висит-ли контролер на внешней шине или доступен по IN/OUT - какая разница ?