Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

USB ve Xmodem

Başlatan mr.engineer, 25 Şubat 2020, 21:07:07

mr.engineer

Merhaba,

Xmodem protokolü ile USB üzerinden paket paket data atmaya çalışıyorum fakat başaramadım. STM32 MCU kullanıyorum.
USB ile ilgili çok bilgim yok bu yüzden hata yapıyor olabilirim.

CubeMx ile USB yi CDC olarak çalıştırıyorum. CDC_Receive_FS isimli bir fonksiyon oluşuyor. Anladığım kadarıyla bu fonksiyon da bir interrupt ile çalışıyor.(bu fonksiyonu çağırmadan kullanabiliyorum)


static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
  /* USER CODE BEGIN 6 */
  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);
  CDC_ReceiveCallBack(Buf,*Len);
  return (USBD_OK);
  /* USER CODE END 6 */
}

CDC_ReceiveCallBack fonksiyonunu da yukarıda gördüğünüz gibi bu fonksiyonda çağırıyorum.

void CDC_ReceiveCallBack(uint8_t *buf, uint32_t len)
{
     // Xmodem protokolü uyguluyorum				
}


Kodum bu şekilde. Xmodem protokolünü bast haliyle(checksum) uygulamaya çalışıyorum. Tera term programıyla da dosya yolluyorum. (Xmodem protokolünü destekliyor.)

Fakat dosyayı yollayamıyorum. Nerede hata yaptığıma dair en ufak bir fikrim yok şu an bu da çok kötü.
Bilen birisi varsa yardımcı olabilirse sevinirim.

mr.engineer

Yardımcı olabilecek yok mu?

Murat Mert

Sanal port olarak mı kullanman  gerekiyor. Bende cubeide de denemeler yapıyorum stm32f103c8 için usb hid üzerinde çalışıyorum. Geldiğim noktaya kadar yardımcı olabilirim.
mert07

mr.engineer

Alıntı yapılan: Murat Mert - 01 Mart 2020, 02:52:08Sanal port olarak mı kullanman  gerekiyor. Bende cubeide de denemeler yapıyorum stm32f103c8 için usb hid üzerinde çalışıyorum. Geldiğim noktaya kadar yardımcı olabilirim.

Sanaldan kastınız nedir tam anlamadım ama USB kablosuyla PC'ye bağlıyorum. Sorunu hallettim. Çalışıyor.
Teşekkürler. Yardımcı olabileceğim bir şey olursa söyleyebilirsiniz