Boşta hat algılama (UART)
Alım hattı bir karakter süresi boyunca sessiz kaldığında tetiklenen UART özelliği; donanımın “mesaj bitti” deme biçimi.
DMA, CPU her bayta dokunmadan seri veri almak için mükemmeldir, ama uzunluğu baştan bilmek ister. Bir GPS modülü ya da AT komutu yanıtı uzunluğu belli olmayan satırlar gönderir. Boşta hat algılama bunu çözer: son karakterden sonra hat tam bir çerçeve süresince boşta (yüksek) kalırsa UART bir bayrak kaldırır ve isterse kesme üretir. STM32’de buna IDLE denir.
Ortaya çıkan kalıp, halka tampona dairesel DMA artı üç kesmedir: yarım aktarım, başa dönüş ve boşta. Kesme işleyicisinde DMA sayacının ne kadar ilerlediğine bakarsınız ve hangi baytların yeni olduğunu tam olarak bilirsiniz. Tuzak şudur: boşta penceresi yalnızca bir karakter uzunluğundadır, paketin ortasında duraklayan bir gönderici iki yarım mesaj üretir. Bu yüzden yeni çiplerde yapılandırılabilir bir alıcı zaman aşımı da bulunur.