ارسال و دریافت سریال با DMA
در پروژه به خاطر عدم اتلاف وقت cpu گاهی لازم میشه دریافت و حتی ارسال پورت سریال را با DMA انجام بدیم. این برای مواردی هست که میکرو مرتب باید دیتای های زیادی را ارسال و دریافت کنه. حالا اگه با چندین USART میکرو این کار باید انجام شود که ضرورت استفاده از DMA خیلی بیشتر به چشم میاد. چون در غیر این صورت برای یک ارسال با تعداد کاراکتر بالا، میکرو باید منتظر بمونه و سرعت کار کم میشه و ...
در اینجا به دو صورت رجیستری و با توابع HAL میشه از DMA استفاده کرد. ولی در توابع هال انجام این کار ظاهرا کمی قلق داره. در این برنامه دیتایی که از سریال با dma دریافت شده بر روی همان سریال با dma باید ارسال شود.
اگه DMA در مد معمولی تنظیم بشه که فقط یک بار می تونید ارسال کنید و دفعه بعد کار نمیده.
اگه در مد چرخشی بذارید که بعد یک ارسال، مرتب این کار تکرار میشه. اگه بعد ارسال هم متوقف کنید که دیگه مجدد دریافت هم نمی کنه.
❓ در چه مواردی لازم شده در این پریفرال usart از DMA استفاده کنید و با چه چالش هایی در پروژه مواجه شدید؟
@armeducation
Post #1829
1.26K
armeducation مشاهده اجرای عملی دریافت دیتا از USART و انتقال به رم به با DMA متوقف نماندن برنامه در موقع دریافت دیتا با استفاده از ویژگی DMA و عدم وقفه های متوالی سریال تکرار دریافت تعداد مشخص شده @armeducation

- ❤ 4