cube ide de IOC sorunu

Başlatan papsukkal, 22 Şubat 2023, 02:30:22

papsukkal

Herkese iyi geceler.

STM Cube Ide ile USB Custom HID yazdım. Çalıştı. Bilgisayardan ve işlemciden datalar sıkıntısız olarak transfer olmakta. HID aşaması tamam dedikten sonra ADC eklemeye çalıştığımda bilgisayar USB yi tanımamaya başladı. Biraz kurcaladım neden diye. En sonunda garip bir durum ile karşılaştım. şöyle ki çalışma dosyalarımı yedekler ile değiştirip USB HID i yeniden yüklediğimde çalışıyor. IOC üzerinden clock ayarını 72Mhz den 36Mhz düşürüp henüz kaydetmeden tekrar 72Mhz ye ayarlıyorum. Kodumu derlediğimde bilgisayar USB yi gene tanımıyor.

Sorunu nerede aramalıyım? Cube IDE yi kaldırıp tekrar yükledim aynı sıkıntı devam ediyor.

İlk kodu 1.11.0 sürümünde yazdım. Sonra güncellemeyi görünce 1.11.2 yükledim, ilk olarak sorunu burada farkettim. Sonra 1.11.0 a geri döndüm ama sorun devam etmekte.

Şimdiden herkese teşekkür ederim.

Not: yeniden oluşturma sırasında kaybolan kod satırı bulunmamakta. Kontrol ettim.

flowchartx

Merhabalar, debug yaptınız mı USB düzgün şekilde init oluyor mu? Bi fonskiyon error döndürüyor olabilir. Adım adım debug yapmakta fayda var. Birde işlemciniz nedir f103 mü?

papsukkal

Alıntı yapılan: flowchartx - 22 Şubat 2023, 07:55:40Merhabalar, debug yaptınız mı USB düzgün şekilde init oluyor mu? Bi fonskiyon error döndürüyor olabilir. Adım adım debug yapmakta fayda var. Birde işlemciniz nedir f103 mü?

Debug yapmadım ancak az önce projeyi ADC_DMA + custom_HID beraaber baştan oluşturdum. Çalıştı. IOC yi yeniden kaydettim USB gene gitti. 

papsukkal

Problemi buldum. USB HID uygulamalarında kütüphaneler içince bazı konfigürasyonlar yapılıyor. Ben yeni komponent ekleyip IOC yi yeniden kaydettiğimde dosyaları kontrol ettim. değişiklik yoktu ancak kütüphaneleri yeniden oluşturup (konfigürasyonları silerek) IDE deki açık sayfalara dokunmamış. Ben kodlar yerinde duruyor derken kütülphaneler ham haline dönmüş.

Her komponent eklemede bu sorunu yaşamamak için sizlerin kullandığınız yöntemler var mı? Ne önerirsiniz? Ben kütüphaneleri ayarladıktan sonra yeniden adlandırıp bu isimle çağırmayı düşündüm.

ARM ve Cube.IDE ile ilk çalışmamdır bu. Her ikisine de yabancıyım. Her türlü öneri ve tavsiyelerinize açığım.

Katkıda bulunacak olan herkese teşekkür ederim.

flowchartx

CubeIde nin oluşturduğu .c ve .h dosyalarına müdahale ediyorsanız, kodlarınızı USER CODE BEGIN   USER CODE END Satırlarına yazmanız gerekiyor. Tekrar projeyi oluşturduğunuzda buraya yazılan kodlarınız silinmez. Fakat orjinal dosyadan bir kod sildiyseniz her oluşturmada o kod oraya gelecektir.

papsukkal

Sorunu buldum. usbd_custom_hid_if.c kütüphanesinde /** Usb HID report descriptor. */ için yazılan tanımlamalar User Code Begin - END satırları arasında olsa da proje yeniden oluşturulurken siliniyorlar.

Çözümü ise yeni donanım ekleyip projeyi yeniden oluşturduktan sonra eski USB kütüphanelerini proje üstüne kaydetmekte buldum. Tabi derleme esnasında bu kütüphanelerin de derlemeye dahil olabilmesi için (özellikle usbd_custom_hid_if.c) herhangi boş satıra boş karakter basıp derlemeye dahil olmasını sağlamam gerekiyor.

Bu şekilde yapınca projemi sorunsuz genişletebildim.