جستجو برای:
  • خانه
  • آموزش
    • محصولات
      • بسته های آموزش ویدئویی
      • پادکست
      • بردهای کاربردی
    • آموزش های موردی
  • دانلود کتاب RTOS
  • تماس با ما
    • درباره من
  • خانه
  • آموزش
    • محصولات
      • بسته های آموزش ویدئویی
      • پادکست
      • بردهای کاربردی
    • آموزش های موردی
  • دانلود کتاب RTOS
  • تماس با ما
    • درباره من

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
EasyMCU | ایزی.ام.سی.یو
0

ورود و ثبت نام

دسترسی سریع
  • خانه
  • آموزش
    • محصولات
      • بسته های آموزش ویدئویی
      • پادکست
      • بردهای کاربردی
    • آموزش های موردی
  • دانلود کتاب RTOS
  • تماس با ما
    • درباره من

آموزش وقفه پورت سریال USART در STM32

خانهدسته بندی نشدهآموزش وقفه پورت سریال USART در STM32
آموزش پورت سریال UART در STM32 با وقفه

قیمت 90,000تومان

فروش محصول متوقف شده است

افزودن به علاقه مندی ها
  • دسترسی همیشگی به فایل ها و آموزش ها
  • دریافت آپدیت های رایگان
امتیاز
4.00 از 1 رأی
90,000تومان
3.71k بازدید 1 دیدگاه
تاریخ بروزرسانی: زمستان 1399
حجم فایل: 214 مگابایت
فرمت فایل rar
  • توضیحات
  • نظرات (1)

آموزش وقفه پورت سریال USART در STM32

از مهمترین بخش های هر پروژه ای، تبادل اطلاعات میکروکنترلر با دنیای بیرون است. از دیباگ میکرو و چاپ کردن اطلاعات سمت ترمینال کامپیوتر گرفته، تا ارتباط با سایر ماژول هایی نظیر SIM900 و ESP8266 و … به منظور انتقال اطلاعات بر بستر اینترنت و ارسال و دریافت پیامک. همینطور اعمال تنظیمات کارخانه ای و تنظیم کردن ویژگی های دستگاه. ساخت یک سیستم CLI و … از برجسته ترین نیازهای هر پروژه ایست که توسط واحد سریال USART برآورده می شود. بنابراین پیاده سازی موثر این واحد از اهمیت بسیار زیادی برخوردار است. راه اندازی ارتباط سریال برای میکروکنترلر STM32 روش های مختلفی دارد، از این بین توابع HAL داری مشکلاتی هستند. در این مطلب مزایا و معایب بررسی می شود و در ادامه آموزش وقفه پورت سریال USART در STM32 به نحوی کاربردی ارائه می گردد.

 

مشکل توابع HAL در پیکربندی واحد USART

سبک HAL یکی از پر استفاده ترین سبک های برنامه نویسی برای میکروکنترلر STM32 است که توسط شرکت سازنده ارائه شده است و طبیعتا دلیل آن وجود نرم افزار stm32cubeMx است. از سمت برنامه نویسان امبدد فعال در عرصه ی امبدد سیستم ها بسیار شنیده شده است که استفاده از توابع USART ارائه شده در سبک HAL بعضا آن ها را با مشکلات گوناگونی در مرحله ی پیاده سازی اولیه مواجه کرده است. حتی در ادامه در زمان دولوپ، محدودیت ها، مشکلات و هنگ کردن های متعددی گزارش شده است. در کل در استفاده های واقعی میزان رضایت پایینی را به همراه داشته است.

شما هم تجربه مشابه داشته اید؟

 

حل مشکل واحد UART برای STM32

در زمان استفاده از واحد سریال UART، دو نیاز عمده وجود دارد.

  • دریافت اطلاعات توسط میکروکنترلر بدون اتلاف وقت CPU در سریعترین زمان ممکن، بدون محدودیت دریافت، بدون از دست رفتن اطلاعات.
  • ارسال اطلاعات از میکروکنترلر به دنیای بیرون، بدون محدودیت خاصی برای ارسال، بدون از دست رفتن اطلاعات.

 

دریافت اطلاعات از واحد سریال USART

معمولا دغدغه ی اصلی در پیاده سازی واحد سریال USART ، بخش دریافت اطلاعات از دنیای بیرون است. به منظور دریافت اطلاعات سه روش عمده وجود دارد …

  • روش سرشماری یا polling
  • روش وقفه ای یا Interrupt
  • روش DMA

از این بین …

  • روش polling صرافا جنبه ی آموزش دارد، منتها در صنعت هیچ کاربردی ندارد.
  • روش وقفه ای یا Interrupt محبوبترین روش دریافت اطلاعات است که در بیش از 80 درصد پروژه های صنعتی از این روش استفاده می شود.
  • روش DMA موثزترین و سریعترین روش دریافت اطلاعات است که برای کار با اطلاعات حجیم و پر سرعت موضوعیت بیشتری پیدا می کند و نسبت به روش وقفه ای قدری پیچیده تر است و نیاز به ملاحظاتی دارد. از این روش برای پروژه های خاص تر بسته به نیازمندی پروژه استفاده می شود.

نتیجه : با این حال در برخی موارد بسته به نیاز پروژه، روش وقفه ای Interrupt همچنان از روش DMA می تواند ارجع تر باشد، زمانی که به کنترل بیشتری روی داده های ورودی نیاز است و داده های دریافتی طول ثابتی ندارند، یا الگوی ارسال آن ها متفاوت است و ثابت نیست.

 

ارسال اطلاعات با رابط سریال USART

ارسال اطلاعات توسط رابط UART به دنیای بیرون نسبت به دریافت اطلاعات دغدغه و چالش های کمتری دارد و به بیان کلی تر ساده تر است. این بخش نیز به سه روش قابل پیاده سازی است.

  • روش عادی
  • روش وقفه ای یا Interrupt
  • روش DMA

از این بین …

  • در نیمی از پروژه ها از روش عادی برای ارسال اطلاعات استفاده می شود، چرا که معمولا تا ارسال اطلاعات به پایان نرسد قصد انجام کار دیگری نداریم!
  • شاید حدود 25 درصد پروژه ها از روش وقفه ای برای ارسال استفاده می کنند، در این وضعیت باید به پایان یافتن عملیات انتقال توجه کرد، که به صورت یک فلگ نمایان می شود. لذا برنامه نویسی آن نسبت به حالت قبل ملاحظات بیشتری دارد.
  • برخی از پروژه ها نیز از روش DMA برای ارسال اطلاعات استفاده می کنند، خصوصا پروژه هایی که داده های حجیم انتقال می دهند.

نتیجه : روش عادی ساده ترین راه انتقال اطلاعات توسط واحد USART به دنیای بیرون است و البته پر استفاده ترین روش در بین طیف های مختلف پروژه ها.

 

محتویات آموزش

این محصول شامل دو بخش عمده می شود.

بخش اول : راه اندازی واحد UART با توابع HAL

  • آموزش راه اندازی واحد UART با توابع HAL برای STM32
  • برای ارسال از توابع عادی استفاده می شود + نکات و شرایط استفاده.
  • برای دریافت از روش وقفه ای استفاده می شود + نکات و شرایط استفاده، چه انتظاری باید و نباید داشت!

بخش دوم : راه اندازی واحد USART با استفاده از کتابخانه ارائه شده در این محصول

  • کتابخانه + آموزش نحوه ی استفاده.
  • برای ارسال از روش عادی استفاده می شود.
  • برای دریافت از روش وقفه ای + برتری نسبت به سبک وقفه ای HAL ، به منظور دریافت اطلاعات با طول متغییر

نتیجه : محدودیت HAL . روش وقفه ای با توابع HAL صرفا زمانی می تواند استفاده شود که طول دریافت اطلاعات همیشه ثابت و مشخص باشد، اما اکثر پروژه ها اینگونه نیستند! کتابخانه ارائه شده این مشکل را حل کرده است و دریافت اطلاعات با طول متغییر نیز با استفاده از کتابخانه امکان پذیر است.

 

کتابخانه راه اندازی پورت سریال UART برای STM32 به روش وقفه

کتابخانه ارائه شده در این محصول تمام مشکلات یاد شده در این مقاله را مرتفع کرده است. از طرفی مزایای یاد شده از نظر کاربری حداکثری را داراست و زمان شما را ذخیره می کند. نیازی به سعی و خطا و دوباره کاری برای پیاده سازی واحد سریال ندارید و با خیال راحت می توانید از امکانات این کتابخانه استفاده کرده و تمرکز خود را روی پیاده سازی ویژگی های پروژه بگذارید.

  • این کتابخانه در کنار سبک HAL، LL ، SPL می تواند بدون مشکل کار کند
  • به منظور پیکربندی اولیه واحد سریال نیاز است از یکی از سبک های HAL، LL ، SPL یا … استفاده شود، به منظور همگن بودن کدها، پس به روش معمول می توانید از stm32cubeMX استفاده نمایید.
  • دریافت اطلاعات با روش وقفه ای پیاده سازی شده است.
  • ارسال اطلاعات با روش عادی پیاده سازی شده است.
  • میزان دریافت و ارسال محدودیتی ندارد، مگر میزان RAM در دسترس میکروکنترلر مورد استفاده.
  • کتابخانه موثر، ساده، قابل توسعه دادن و انعطاف پذیر پیاده سازی شده است و حافظه کمی استفاده می کند.
  • جهت موثر و بهینه بودن کدها از روش رجیستر نویسی استفاده شده است.
  • به سادگی قابل پورت کردن برای سایر میکروکنترلرها می باشد + توضیحات در ویدئو آموزشی ارائه شده است.
  • شامل دو فایل c. و h. می باشد و به راحتی به پروژه متصل می گردد.
  • مثال ها برای میکروکنترلر stm32f103c8 می باشد. برای سایر میکروهای stm32 نیاز به تغییرات خاصی ندارد + توضیحات نحوه پورت کردن ارائه شده است.
  • برای 3 واحد سریال پیاده سازی شده است، روش کاستوم کردن کتابخانه و قابلیت های آن در ویدئوی همراه محصول شرح داده شده است.
  • ویدئو آموزش همراه کتابخانه

 

توابع پیاده سازی شده برای ارسال اطلاعات

  • serial_print
  • serial_writeBuf

 

توابع پیاده سازی شده برای دریافت اطلاعات

  • serial_isAvailable
  • serial_read
  • serial_readString
  • serial_readBytes

چگونه می توانم کتابخانه و آموزش آن را تهیه کنم؟

روی دکمه “افزودن به سبد خرید” در بالا-سمت چپ همین صفحه کلیک کنید. در ادامه با نهایی کردن سفارش از بخش سبد خرید، پس از پرداخت هزینه امکان دانلود فایل های محصول برای شما فراهم می شود. همینطور در صورت آپدیت محصول، به صورت خودکار آپدیت ها برای شما اعمال شده و از بخش حساب کاربری، بخش دانلودها برای همیشه در دسترس شما می باشد. با آرزوی بهترین ها.

  • hamid3792
    25/03/1400
    پاسخ

    سلام آقای زندی خسته نباشین
    بنده کتابخانه usart رو خریداری کردم و برای stm32f407 استفاده کردم . مشکلی با تابع serial_print ندارم ولی در هنگام دریافت اطلاعات بعد از یک بار چاپ کردن hello برنامه در وقفه میماند. و از وقفه بیرون نمی آید خواهشا من رو راهنمایی کنین.

    • مرتضی زندی(مدیریت)
      25/03/1400
      پاسخ

      درود بر شما آقا حمید گرامی

      احتمالا مقادیر دریافتی از واحد سریال رو توسط برنامه کامل نمی خونید. پیشنهاد می کنم حتما در ابتدا از مثال همراه محصول استفاده بفرمایید تا از صحت کارکرد توابع خیالتون راحت بشه و با کارکردشون آشنا بشید.
      اگر مشکل حل نشد به شماره واتسپ سایت از بخش تماس با ما پیام بدید تا با جزئیات بیشتری مشکلتون بررسی و حل بشه.

      با آرزوی بهترین ها

قوانین ثبت دیدگاه

  • دیدگاه های فینگلیش تایید نخواهند شد.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
  • امتیاز دادن به محصول فقط مخصوص خریداران آن می باشد.

لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

محصولات مشابه

فول پک آموزش FreeRTOS

فول پک آموزش FreeRTOS

مرتضی زندی
1,500,000تومان
خرید محصول

قیمت 90,000تومان

فروش محصول متوقف شده است

افزودن به علاقه مندی ها
  • دسترسی همیشگی به فایل ها و آموزش ها
  • دریافت آپدیت های رایگان
امتیاز
4.00 از 1 رأی
90,000تومان
3.71k بازدید 1 دیدگاه
تاریخ بروزرسانی: زمستان 1399
حجم فایل: 214 مگابایت
فرمت فایل rar
دسته: دسته بندی نشده
https://easymcu.org/fa/?p=5173

فروش محصول متوقف شده است

اطلاعات تماس
  • تهران
  • واتساپ: 56 25 417 0937
  • EasyMCU.org@gmail.com
دسترسی سریع
  • حساب كاربری
  • سفارش ها
  • قوانین و مقررات
آخرین مطلب
  • آموزش نصب و راه اندازی سیستم عامل Free RTOS برای آردوینو Arduino By مرتضی زندی on اسفند 26, 1399
EasyMCU | ایزی.ام.سی.یو
تمامی حقوق برای EasyMCU محفوظ است.
keyboard_arrow_up
ورود ×
رمز عبور را فراموش کرده اید؟
ورود با کد یکبارمصرف
ارسال مجدد کد یکبار مصرف(00:60)
آیا حساب کاربری ندارید؟
ثبت نام
ارسال مجدد کد یکبار مصرف(00:60)
برگشت به ورود

ارسال مجدد کد یکبار مصرف (00:60)
برگشت به ورود
  • (+98) ایران
سوالی دارید؟ با ما صحبت کنید!
شروع مکالمه
سوالی دارید؟ راهنماییتون میکنیم ...
معمولاً در چند دقیقه پاسخ می دهیم
مرتضی زندی
آنلاین هستم، سوالتون رو بپرسید

تومان