Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: görkem - 10 Ekim 2016, 01:55:32

Başlık: cubemx usb sorunu
Gönderen: görkem - 10 Ekim 2016, 01:55:32
Cubemx ile configure edip keil ile derlediğim usb haberleşme kodu naptıysam pc ye tanıtamadım pc de aygıt yöneticisinde hid kısmında  aygıt geçirilemedi diye bir hata veriyor vid ve pid yi sürücülerde gösteriyor fakat veri alışverişi yok denemeleri st nin usb hid demonstrator programı ile yapıyorum  algılamıyor bile program
Başlık: Ynt: cubemx usb sorunu
Gönderen: EMP_Otto - 10 Ekim 2016, 10:23:50
Kullandığınız kodu paylaşırsanız yardımcı olacak birileri mutlaka çıkar.
Başlık: Ynt: cubemx usb sorunu
Gönderen: eigenvector - 10 Ekim 2016, 12:37:10
Benzer bir durum usb'yi vcp olarak tanimladigimda karsima cok cikti. Cozumu de baslangicta, data gondermeye baslamadan once 1sn delay vererek olmustu.

Sent from my SM-N9000Q using Tapatalk

Başlık: Ynt: cubemx usb sorunu
Gönderen: Cemre. - 10 Ekim 2016, 16:09:57
usbd_custom_hid.c dosyasında herhangi bir değişiklik yaptınız mı?
Başlık: Ynt: cubemx usb sorunu
Gönderen: görkem - 10 Ekim 2016, 17:00:13
şuanda sistem görüyor veri gönderebiliyorum fakat veri pc den alamıyorum veri geldi event i oluşuyor fakat veriyi çekemiyorum çok tuhaf bir durum   " CUSTOM_HID_ReportDesc_FS " descriptor kısmından şüpheleniyorum.  usbd_custom_hid.c dosyasında herhangi değişiklik yapmadım usbd_custom_hid.if.c dosyasında değişiklik yaptım.

CUSTOM_HID_ReportDesc_FS kısmını hid descriptor tool programı ile oluşturdum.

@eigenvector  bekleme koymayı denedim sonuç alamadım.

kullandığım işlemci stm32f407

dosyaların linki aşağıdadır.

https://www.dropbox.com/sh/a2ivhxgljcm44u5/AAB3J_gPl0_JZ91hVHt0pEYVa?dl=0 (https://www.dropbox.com/sh/a2ivhxgljcm44u5/AAB3J_gPl0_JZ91hVHt0pEYVa?dl=0)
Başlık: Ynt: cubemx usb sorunu
Gönderen: Cemre. - 10 Ekim 2016, 18:41:17
Evet haklısınız, usbd_custom_hid_if.c 'den bahsetmek istemiştim. User Code 6 alanını doldurmanız gerekiyor.

Ben bu şekilde yapmışım.


USBD_CUSTOM_HID_HandleTypeDef *hhid = (USBD_CUSTOM_HID_HandleTypeDef*)hUsbDeviceFS.pClassData;

for(uint8_t i = 0; i<63; i++)
{
USB_RX_Buffer[i] = hhid->Report_buf[i];
}

  return (0);
Başlık: Ynt: cubemx usb sorunu
Gönderen: görkem - 10 Ekim 2016, 19:31:47
@Cemre. aynı şekilde kullanıyorum  sizin kullandığınız " CUSTOM_HID_ReportDesc_FS "  descriptor kısmı nasıl hocam ?  dosyaya bakabilme imkanınız varsa çok iyi olur
Başlık: Ynt: cubemx usb sorunu
Gönderen: Cemre. - 10 Ekim 2016, 19:35:51

  /* USER CODE BEGIN 0 */
  0x06, 0x00, 0xFF, // Usage Page = 0xFF00 (Vendor Defined Page 1)
0x09, 0x01, // Usage (Vendor Usage 1)
0xA1, 0x01, // Collection (Application)
// Input Report
0x19, 0x01, // Usage Minimum
0x29, 0x40, // Usage Maximum
0x15, 0x00, // Logical Minimum (data bytes in the report may have minimum value = 0x00)
0x26, 0xFF, 0x00, // Logical Maximum (data bytes in the report may have maximum value = 0x00FF)
0x75, 0x08, // Report Size: 8-bit field size
0x95, CUSTOM_HID_EPIN_SIZE, // Report Count
0x81, 0x02, // Input (Data, Array, Abs)
// Output Report
0x19, 0x01, // Usage Minimum
0x29, 0x40, // Usage Maximum
0x75, 0x08, // Report Size: 8-bit field size
0x95, CUSTOM_HID_EPOUT_SIZE, // Report Count
0x91, 0x02, // Output (Data, Array, Abs)
  /* USER CODE END 0 */
  0xC0    /*     END_COLLECTION              */


Bir giriş bir çıkış iki adet endpoint içeriyor. İkisi de 64byte olması lazım..


while (1)
  {
  /* USER CODE END WHILE */
LED_State = USB_RX_Buffer[0];
sprintf((char *)USB_TX_Buffer, "#STM,%.2f,boylam,yaw,pitch,roll,%u,@", x, LED_State);
uint16_t len = strlen((char *)USB_TX_Buffer);

if(LED_State) HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_RESET);
else  HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_SET);

USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, USB_TX_Buffer, 64);

++x;
HAL_Delay(5);
  /* USER CODE BEGIN 3 */
  }


Bu yukarıdaki kodu düzenleyerek kit'in üzerindeki Led'leri USB Demonstration uygulamasıyla kontrol edebilirsiniz. Ben STM32F103C8T6'da sorunsuz kullanıyorum. PC'ye sürekli artan bir sayı gönderir. Bunu bağlantı kopması olup olmaması durumunu göreyim diye koydum. RX_Buffer'ın 0'ın baytını da kontrol ederek bir LED'i yakıp söndürdüm.
Başlık: Ynt: cubemx usb sorunu
Gönderen: görkem - 10 Ekim 2016, 19:47:32
endpointler doğru hocam. dediğinizi bir deniyim.

mesaj birleştirme:: 10 Ekim 2016, 20:31:16

hocam sorun usb hid demonstrator  daymış kodum doğruymuş. demonstrator da graphic view de ledlerin adresini graphic customization da değiştirmeme rağmen adres değişmiyor bu sebeple veri kaçırdığımı sanmışım.
Başlık: Ynt: cubemx usb sorunu
Gönderen: Cemre. - 11 Ekim 2016, 00:13:15
Alıntı yapılan: görkem - 10 Ekim 2016, 19:47:32
endpointler doğru hocam. dediğinizi bir deniyim.

mesaj birleştirme:: 10 Ekim 2016, 20:31:16

hocam sorun usb hid demonstrator  daymış kodum doğruymuş. demonstrator da graphic view de ledlerin adresini graphic customization da değiştirmeme rağmen adres değişmiyor bu sebeple veri kaçırdığımı sanmışım.

Evet bu sorunu ben de yaşamıştım. Çok da üzerinde durmadım, aslında verileri işleyecek bir C# uygulaması da hazırlamıştım ancak şuan kullandığım USB kütüphanesinin birşeyleri yüklü olmadığından uygulama USB'yi görmüyor. O konuya da bir el atmak lazım..
Başlık: Ynt: cubemx usb sorunu
Gönderen: görkem - 11 Ekim 2016, 00:19:01
Alıntı yapılan: Cemre. - 11 Ekim 2016, 00:13:15
Evet bu sorunu ben de yaşamıştım. Çok da üzerinde durmadım, aslında verileri işleyecek bir C# uygulaması da hazırlamıştım ancak şuan kullandığım USB kütüphanesinin birşeyleri yüklü olmadığından uygulama USB'yi görmüyor. O konuya da bir el atmak lazım..

umng.dll mi eksik hocam öyleyse göndereyim bende c# ile uygulama yapmıştım zamanında o dll yi  kulanmıştım.
Başlık: Ynt: cubemx usb sorunu
Gönderen: Cemre. - 11 Ekim 2016, 11:01:03
Yok LibUsbNet gibi bir kutuphane kullanmıştım ancak hiç hatırlayamıyorum. Değişik bir wizard'ı var ve suruculere mudahale etmek gerektiriyor. Oyle olduktan sonra ne anladim HiD'den? Sevmemiştim onu.
Başlık: Ynt: cubemx usb sorunu
Gönderen: görkem - 11 Ekim 2016, 14:23:18
Anladım.Zamanında hızlı şekilde yapmak adına kullanmıştım çok kısıtlı kullanımı vardı fakat işimi görmüştü.O kütüphaneye bakarım müdahale edebilmek  daha iyi tabi.