STM32 ile USART üzerinden veri alış verişi yapmanın çeşitli yöntemleri var. En basitinden yoklama (polling) yöntemi, biraz daha geliştirilmiş bir yöntem tercih ediyorsak kesme (interrupt) yöntemi kullanılabiliyor. Daha önce bu yöntemleri ve ring buffer kullanarak veri alış verişini anlattığım yayınlarım olmuştu.
- HAL kütüphanesi ve kesmeleri kullanarak veri alışı (eski yöntem)
- Ring buffer kullanımı (HAL kütüphanesi kullanmadan)
Bu sefer, HAL kütüphanesinden özel bir fonksiyonu kullanarak DMA modunda alış için uyarladığım ring buffer tekniğini anlatacağım. Bu yeni algoritma UART DMA kesmelerinden yararlanarak CPU yu neredeyse hiç meşgul etmeden çalışan basit ve verimli bir çözüm. Bundan sonraki projelerimde bu kütüphaneyi kullanmayı düşünüyorum.