DMA Stop Fonksiyonu

Başlatan robikod, 25 Haziran 2021, 11:12:59

robikod

Merhabalar,

  HAL_UART_DMAStop(&huart2); Fonksiyonu çağırıldıktan sonra, __HAL_DMA_GET_COUNTER(huart->hdmarx) değerinin bufferın verilen değerinde başlaması gerektiğini düşünüyorum ancak, bu değer "0" olarak dönüyor, yani DMA'ya aktarılacak veri yok olarak görünüyor. Sanki bütün veriler aktarılmış aktarılacak veri kalmamış, Neden bu şekilde bir değer alıyorum ?

Tagli

Hangi işlemci? STM32'lerin hepsinin DMA donanımı birbirinin aynısı değil.
Gökçe Tağlıoğlu

robikod

Alıntı yapılan: Tagli - 25 Haziran 2021, 12:14:45Hangi işlemci? STM32'lerin hepsinin DMA donanımı birbirinin aynısı değil.
Pardon belirtmemişim stm32f4xx

Tagli

HAL kullanmadım hiç, ancak DMA durdurulduğu zaman NDTR register'ında, yapılmamış transfer sayısı yazar. Her bir transfer boyutunun byte olduğunu varsayarsak, (BUFFER_SIZE - NDTR) kaç byte transfer edildiğini verir.

DMA eğer kendisi transfer limiti sebebiyle durduysa, belki NDTR 0 değil de BUFFER_SIZE olarak okunabilir. Bundan emin değilim, kontrol etmek lazım.
Gökçe Tağlıoğlu

kimlenbu

DMA Pause ile deneyip bakar mısın bir de ?

robikod

Alıntı yapılan: kimlenbu - 25 Haziran 2021, 15:03:37DMA Pause ile deneyip bakar mısın bir de ?
Alıntı yapılan: kimlenbu - 25 Haziran 2021, 15:03:37DMA Pause ile deneyip bakar mısın bir de ?

MErhaba denedim ama olmadı