( Csab | 2019. 10. 05., szo – 19:14 )

A fő bajom az I2C-vel, hogy nehéz pufferelni. Minden egyes átküldött bájt esetén külön nézni kell, hogy mi az ábra.

USART-hoz még interrupt sem kell. Körkörös DMA pufferbe töltöm az adatokat, amikor meg épp ráérek feldolgozom.

Írtam STM32-es oszcilloszkópot:
- ADC-vel DMA-val mintavételez
- eközben USB-vel max. 800 kbyte/s-cel nyomtam át mintavételeket
- eközben kirajzolom LCD-re, hogy mennyi bájtot toltam át DMA-val
- a proci meg jóformán semmit sem csinál

Azért képes az egész így működni, mert nem kell minden egyes átküldött bájtot végig kísérni. Ott a hardver DMA, az megcsinálja. Te csak felprogramozod a regisztereket, minden megy magától.

Nálam nagyon nem jön be, amikor minden egyes idióta bájtnál azt bámulod, hogy épp sikerült-e, vagy sem. Baromi erőforrás igényes. I2C esetén nem tehetsz mást. Ilyen a protokoll.