STM32-UART&DMA Receive To Idle Line(Bilinmeyen Rx Büyüklüğü Çözümü)

Поделиться
HTML-код
  • Опубликовано: 14 окт 2024
  • Herkese merhaba,
    Bu videomda USART modülünü DMA ile kullandık ve ReceivetoIdle fonksiyonu ile bilinmeyen Rx büyüklüklerine karşı verilerin nasıl çekilebileceğini anlattım.
    Kodlar :
    github.com/Bah...
    İyi seyirler.

Комментарии • 35

  • @ademkeles6497
    @ademkeles6497 Месяц назад

    2 haftadır uğraştığım konuyu sonunda bu video ile çözebildim kardeş. Allah ne muradın varsa versin.☺

    •  Месяц назад

      @@ademkeles6497 Amin kardeş, yardımcı olabildiysem ne mutlu bana :)

  • @AlgoritmaAkademisi
    @AlgoritmaAkademisi 9 месяцев назад

    3 gündür bu sorunu çözmeye çalışıyorum. Allah razı olsun hocam.

  • @volkancicekdal4532
    @volkancicekdal4532 2 года назад

    Hoşgeldiniz Bahadır hocam.

    •  2 года назад

      Hoşbulduk Volkan Bey teşekkür ederim :)

  • @hcaltay
    @hcaltay Год назад

    Bir parser algoritması geliştiriyorum ve video aşırı faydalı oldu, çok teşekkürler hocam

    •  Год назад

      Yardımcı olabildiysem ne mutlu bana dostum :)
      İyi çalışmalar.

    • @hcaltay
      @hcaltay Год назад

      @ Hocam çok teşekkürler, hazır sizi bulmuşken sormak istiyorum ben buradaki RxBuffer'ı aşağıdaki gibi bir struct'a dönüştürebilir miyim?
      #define RxBufferSize 50
      uint8_t RxBuffer[RxBufferSize];
      typedef struct {
      uint8_t baslangic;
      uint16_t emirNo;
      uint8_t birimNo;
      uint32_t emirAdresi;
      uint8_t komut;
      uint8_t dataTipi;
      uint32_t data;
      uint8_t bitis;
      } Mesaj;

    •  Год назад

      @@hcaltay "union" kullanarak dönüştürebilirsiniz.

  • @holden_leonidas
    @holden_leonidas 6 месяцев назад

    kardeşim emeğine sağlık , karşılaşırsak birgun kahveler benden olsun

  • @seferideveloper6933
    @seferideveloper6933 2 года назад

    Artık aya gidebilirim. Teşekkürler

  • @AlgoritmaAkademisi
    @AlgoritmaAkademisi 9 месяцев назад

    Hocam kablosuz uart modülleri ile (Lora, xp gibi) haberleşme yapıyorum fakat verilerin asla kaybolmamasını istiyorum. Yani uzaktan bağlantı gittiğinde 10-20 saniye sonra tekrar bağlanıldığında o verilerin tekrardan gelebilmesini istiyorum. bunu nasıl sağlayabilirim

  • @Fixaj
    @Fixaj Год назад

    hocam şu kodu __HAL_DMA_DISABLE_IT(&hdma_usart2_rx, DMA_IT_HT); kullanmak zorunda mıyız. ben interrupt ile okuma yapınca tam olarak yazamadım kodu. kullanmayınca bir sıkıntı çıkar mı varsa makale bu kod hakkında yollarsanız sevirim.

  • @erkambaki6062
    @erkambaki6062 2 года назад

    hocam bu şekilde receive yaparak joyistickden stm32 ye veri alıyorum sorunsuz şekilde lakin if döngüsüyle int halindeki veriyi gpıowrite pin ile if dögüsüne koyduğumda led koşulu dinlemeden aktif oluyor lütfen yardım edin

  • @ahmetnsahi
    @ahmetnsahi 2 года назад +1

    Yapamayan arkadaşlar init fonksiyonlarından dma yı uart yada başka bir periphal ile kullanıyorsa onun üstüne alması gerek aksi takdirde son biti okuyor gerisinde kesmeyi bırakıyor. cube ide sorunu uzun ugraş sonucu keşfettim ....

    •  2 года назад

      2:00 😅

    • @ahmetnsahi
      @ahmetnsahi 2 года назад

      @ öncelik ayarları bende de yukarıda ama dma init cube ide den dolayı aşagıda kalıyor ondan arkadaşları uyarmak istedim bi kaç yabancı kanalda da yapamayanlar var video için teşekkürler bu arada....

  • @enginkamanl3574
    @enginkamanl3574 Год назад

    hocam merhabalar L serisi kullanıyorum void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    bu fonksiyon çağırılmıyor.Rxbuffere veri geliyor ama bu fonksiyona gitmiyor.Neden olur yardım edebilir misiniz?

    •  Год назад

      Merhaba,
      bahadirayd@gmail.com adresine mail atın. Bendeki kodu inceleyip size geri dönüş yapayım.

  • @elaselas5659
    @elaselas5659 Год назад

    çeşke bu cube mx olmasaydı da biraz program yazmayı ögrenseydik :)Bare Metal" (Register Seviyesi) ögrenmeye çalışıyorum. bu arada sıfırdan ögrenmeye çalışıyorum. Register Seviyesi geri dönmeyi düşünüyormusunuz keil kütüphaneler içindeki typedef struct yapılar program içinde nasıl kulanılır acaba :) bu tarz video lar olursacaksa üye olmak çok isterim .

    •  Год назад +1

      Burdan başlayıp Bare Metale sonradan da geçebilirsin. Daha şevk edebilir seni

  • @ahmetulaspolat5706
    @ahmetulaspolat5706 2 года назад

    özledim

  • @elomel1000
    @elomel1000 2 года назад

    Baho cansın

    •  2 года назад

      😘

  • @by1ronin
    @by1ronin 2 года назад

    Geri dönmüşsün abi.

  • @utkudenizaltiok860
    @utkudenizaltiok860 2 года назад

    Hocam iyi günler bir sorunum vardı da yardımcı olabilirseniz sevinirim.
    ben 2 stm32 yi haberleştirmeye çalışıyorum birinden dma ila transmit ediyorum öbüründen dma ile receive etmeye çalışıyorum. Transmit eden stm32 hiç sorunsuz her 1 saniyede bir textini yolluyor ama receivde şöyle bir sıkıntım var.
    Receiver olanın "int main(void) kısmında USER CODE BEGIN 2" içine şunları yazdığımda (sizin yaptığınız gibi)
    " HAL_UARTEx_ReceiveToIdle_DMA(&huart2, received, received_size);
    __HAL_DMA_DISABLE_IT(&hdma_usart2_rx, DMA_IT_HT);
    "
    ve "while (1)" kısmını boş bıraktığımda okumuyor hiç öyle boş duruyor fakat yukarıdaki iki satır kodu "while(1)" içine yazdığımda okuyor.
    Ama siz while kısmını hiç kullanmamış direk main koda yazmıştınız ona rağmen çalışıyor nedendir acaba ?
    Şimdiden tşeekkürler.

    •  2 года назад

      Verdğim github linkinde 81.satırdaki fonksiyonu aynı şekilde yazmanız gerekiyor mesaj almayı aktifleştirmeniz için. Siz yaptınız mı ? Bir de DMA_Init yukarda olmalı USART'lardan. github.com/BahadirAydinoglu/STM32_USART_DMA/blob/main/Core/Src/main.c

    • @utkudenizaltiok860
      @utkudenizaltiok860 2 года назад +1

      @ Hocam kod birebir aynı void kısmı ama dediğim gibi sizin 128. ve 129. satırda yazdığınız yeri mainde yazınca çalışmıyor while da yazınca çalışıyoyor

  • @MrTough-dw7ot
    @MrTough-dw7ot Год назад

    Hocam farklı türden veri nasıl alınır? Örneğin hem char türden hem de int türden veri alacağım, nasıl yapılabilir?

    • @KervanASLAN
      @KervanASLAN Год назад +1

      Int türünden veri almak doğru olmaz, char tipinde alıp daha sonra int'e çevirmeniz lazım. Ayrıca int her sitemde farklılık gösterebilir, o sebeple uint8_t gibi bir şeyler kullanmak doğru olur.

    • @MrTough-dw7ot
      @MrTough-dw7ot Год назад

      @@KervanASLAN haklısın ama şu problemime nasıl bir çözüm üretebiliriz; PC de bir uygulama yaptım ve bu uygulama ile slider bar'ı hareket ettirere motora pwm değeri gönderecem. Aynı zamanda da karakter de göndermem gerekiyor ki motorun hangi yöne döneceğine karar vermek.
      Ayrı ayrı olarak bu işlemleri yapabiliyorum. Mesela ya sağa ya sola döndürüyorum motoru, Yad motorun hızını da ayarlayabiliyorum. Bu ikisini aynı anda nasıl yapabilirim?

    • @Muhammed-vm3ep
      @Muhammed-vm3ep Год назад

      @@MrTough-dw7ot eğer gelen veri 0 dan büyükse sağ yöne doğru, gelen değerde PWM gönderin, eğer 0 dan küçükse sola doğru, gelen değerin mutlak değerini PWM olarak gönderin :) Bilgisayardan gönderilen verilerde de yön değiştirince sol pwm değerini - olarak gönderirsiniz. Veya başka bir seçenek olarak belirli bir veri paketi kriteri belirler, gelen paketin belirli bytelarını hız belirli bytelarını yön olarak belirleyip bu şekilde de çözebilirsiniz.

  • @ahmetergin7376
    @ahmetergin7376 Год назад

    Hocam video çekmeye geri dönün..

    •  Год назад

      Ah kardeşim çok teşekkür ederim ama inan bana çok yoğunum. İş, yüksek lisans, tübitak projeleri derken gerçekten hiç vakit ayıramıyorum buraya. Bir de belirtmem gerekiyor ki RUclips kazancı hiç tatmin edici değil.

    • @ahmetergin7376
      @ahmetergin7376 Год назад

      @ Haklısınız hocam, udemy platformunda ders vermeyi düşünün derim o zaman. Hayatınızda başarılar.