STM32F103 VCP ye Başkta STM32F den bilgi gönderme.

  • Konuyu başlatan Konuyu başlatan M_B
  • Başlama tarihi Başlama tarihi

M_B

Aktif Üye
Katılım
16 Şubat 2023
Mesajlar
213
Merhabalar,
STM32F103C8T6 ile sanal com port uygulaması yaptım. Modulu PC ye bağlayıp Herhangi bir serial terminal programıyla
LedOn , LedOff
yazdıgımda tanımlamış olduğum Led yanıp sonuyor.
Yukarda yazdığım işlemi PC den bağımsız nasıl yapabilirim.
Örneğin USB Host özelliği olan STM32F407 ile yapılabilir mi ?

Bu konuda çalışma yapmadım ve bilgiyede sahip değilim.
Yönlendirilmeye ihtiyacım var. Anahtar kelimeler nelerdir.

Not:
Bu duruma ihtiyac duymam daki amaç yapmış oldugum Sanal kom portlu modullerimi
PC ye takmadan test etmek.
 
Burada kullandığınız modül USB-UART çevirici ise, herhangi bir UART sinyali üretip, gönderebilen cihazla haberleşme sağlarsınız. Ara modül hakkında bilgimiz olsa daha iyi olur.
 
Burada kullandığınız modül USB-UART çevirici ise, herhangi bir UART sinyali üretip, gönderebilen cihazla haberleşme sağlarsınız. Ara modül hakkında bilgimiz olsa daha iyi olur
Hocam USB-UART cevirici yok.
Modulu ( STM32F103 Blue Pill ) direk PC ye USB den bağlayınca sanal kom port olarak gozukuyor.
USB Sanal kom port uygulama ornek link:
 
Bu durumda STM32F407'i Host olarak, STM32F103C8'i'de device olarak ayarlayıp bu yapılabilir gibi duruyor. Daha önce hiç denemedim açıkçası.

Bu abi açıklayıcı şekilde anlatıyor.

Çok kritik bir şey değilse stm32ler arasında diğer haberleşme yöntemlerini kullanmak daha mantıklı geliyor bana.
 
pcden bağımsız portatif birşey lazımda usb host projeleri raspbery pi veya benzeri sbcler ile çok kolaylıkla yapılabilir.
 
pcden bağımsız portatif birşey lazımda usb host projeleri raspbery pi veya benzeri sbcler ile çok kolaylıkla yapılabilir.
Hocam elimde raspery pi de mevcut. Kolay oluyorsa denemek isterim. Nasıl yol almam lazım.
Her ayrı modulu tak cıkar yaptığımda sanal com port deger değiştiriyor mu ve otomatik bağlanma nasıl oluyor.
Win ortamında hep Device Manager dan hangi port atandıysa ogrenip Serial porttan secip bağlan diyor ve komutları gonderip test ediyordum/ediyorum. Şimdiki amacım bu aşamayı tak cıkar şeklinde yapmak.

Not: Yapılabiliyorsa USB Host özellikli modul ile yapmak isterim. ( Bu olayı ayrıyeten öğrenmek te istiyorum. İlerdeki uygulamam dusuncem USB Host USB Barkod okuyucudan bilgi alabilmek. )
 
Windowsda da c # ile otomatik uab yi taktıgınızda baglanıp led yakıp sondürüp bağlantıyı kapatacak bir kod yapabilirsiniz c# com port ornekleri hep manuel seçmeli felandır ama bu şart değil arkaplanda timer ile usbleri kontrol edip algılandıgı anda bağlanıp testi başlatacak bir program yazmak mümkün
Detaylarını hatırlamıyorum uzun zamandır uygulama yapmadım ama mümkün olduğundan eminim
 
Alternatif öneri: Her kart için compot numarasını sabit tutmak için.

Bu öneri bilgisayara aynı anda sadece bir adet sizin yazdığınız cihazınız bağlanacaksa işe yarar. Windowsun her cihaz için ayrı port atamasının nedeni, taktığınız usb cihazların seri numaralarının farklı olmasından kaynaklanıyor. Kontrol etme imkanım yok ama "usbd_desc.c" şeklinde konfigrasyonların tanımlandığı yerde bu serial ataması yapılır.

Her cihaz için farklı serial numarası stm32 nin UID si kullanılarak elde edilir.

Tüm cihazların usb serial no larını aynı yaparsanız, bilgisayara her bağlayıp söktüğünüzde hepsi aynı comport numarasını alır.

Aynı anda birden fazla takarsanız problem yaşama ihtimaliniz yüksek.
 
Son düzenleme:
Bahsettiğim yer usbd_desc.c içerisindeki aşağıdaki fonksiyon.

Kod:
/**
  * @brief  Create the serial number string descriptor
  * @param  None
  * @retval None
  */
static void Get_SerialNum(void)
{
  uint32_t deviceserial0;
  uint32_t deviceserial1;
  uint32_t deviceserial2;

  deviceserial0 = *(uint32_t *) DEVICE_ID1;
  deviceserial1 = *(uint32_t *) DEVICE_ID2;
  deviceserial2 = *(uint32_t *) DEVICE_ID3;

  deviceserial0 += deviceserial2;

  if (deviceserial0 != 0)
  {
    IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
    IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
  }
}
 
Bahsettiğim yer usbd_desc.c içerisindeki aşağıdaki fonksiyon.

Kod:
/**
  * @brief  Create the serial number string descriptor
  * @param  None
  * @retval None
  */
static void Get_SerialNum(void)
{
  uint32_t deviceserial0;
  uint32_t deviceserial1;
  uint32_t deviceserial2;

  deviceserial0 = *(uint32_t *) DEVICE_ID1;
  deviceserial1 = *(uint32_t *) DEVICE_ID2;
  deviceserial2 = *(uint32_t *) DEVICE_ID3;

  deviceserial0 += deviceserial2;

  if (deviceserial0 != 0)
  {
    IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
    IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
  }
}
Teşekkürler hocam. Bahsettiğiniz yöntemde farklı bir alternatif. Bu uygulamam da kullanmasam da serial kısmını öğreniş oldum.

Bir tane STM32F407 Discovery'in USB Host özelliğini kullanarak yapamazmıyız.
Module bağlanınca 5sn aralıkla on - off yapacak komut gonderse olmaz mı ?
Yoksa bu bahsettiğim iş bu şekilde olmaz mı ?

@TunahanC Hocanın onerdiği linkte Blue Pill den 411 module veri geliyor ben tam tersini yapmak istiyorum.
Önerdiği Link:
 
PC veya benzeri bir cihaza bağlamayacaksanız USB kısmı bence gereksiz. Seri port üzerinden haberleşmek daha kolay. 1Mbaud hızlara çıkmanız da mümkün.
RPi ile USB'den bağlanmanız da mümkün. Seri port olarak görecektir.
 
PC veya benzeri bir cihaza bağlamayacaksanız USB kısmı bence gereksiz. Seri port üzerinden haberleşmek daha kolay. 1Mbaud hızlara çıkmanız da mümkün.
RPi ile USB'den bağlanmanız da mümkün. Seri port olarak görecektir.
Ürünler pc ye bağlanacak. Pc ile ortak alışıyor. Buradaki amacım yapmış olduğum ürünün testini kolay ve kısa sürede yapmak. Kendime test ürünü yapmak.
 

Forum istatistikleri

Konular
7,554
Mesajlar
126,491
Üyeler
3,057
Son üye
Hacın

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top