آموزش میکروکنترلر Stm32f1 به صورت رجیستری قسمت چهارم: UART

blog
۱۳۹۸-۱۰-۱۴
3 دقیقه

پروتکل UART

خدایا با نام تو با یاد تو و برای تو، دوستان عزیز سلام و با عرض شرمندگی بابت تاخیر انتشار این قسمت، سرباز باشید و یا سربازیتون نزدیک بشه متوجه می‌شید که چی می‌گم.

در قسمت سوم در رابطه با پروتکل UART صحبت کردیم اما بحث تکمیل نشد و ادامه این موضوع را در ادامه بررسی خواهیم کرد.

خب برای رجیستر های CR2 و CR3 برای کاربرد ساده پروتکل UART لازم به تغییر نیست.

تنها نکته باقی مانده در رجیستر CR2 این است که اگر در بیت 13 و بیت 12 این رجیستر مقدار 0 را قرار دهیم تعداد stop بیت را 1 انتخاب می‌کنیم.

رجیستر Status:

آموزش STM32 به صورت رجیستری

BIT7 :TXE در صورتی که بخواهیم ارسالی داشته باشیم قطعا باید به این موضوع توجه کنیم که ارسال بایت ما تمام شده و بافر ارسال خالی شده باشد.

صفر بودن این بیت به این معناست که بافر هنوز پر بوده و دیتا ارسال نشده است و یک بودن این بیت به این معناست که دیتا از بافر تخلیه شده است.

خب برای این که متوجه بشیم این بیت 0 و یا 1 است از کد زیر استفاده می‌کنیم:

برنامه در این حلقه تا زمان ارسال بایت از بافر قفل می‌شود.

BIT5 :RXEN اگر این بیت SET شود ما متوجه می‌شویم در بافر دریافت دیتایی قرار گرفته است.

رجیستر Data:

آموزش STM32 به صورت رجیستری

این رجیستر به صورت 9 بیتی و یا 8 بیتی استفاده می‌شود که اگر دیتایی را بخواهیم ارسال و دریافت کنیم از این رجیستر استفاده می‌شود.

Data دیتا یک متغیری است که مقداری را که اگر بخواهیم در رجیستر DR قرار بدهیم و ارسال شود تعریف می‌کنیم و & کردن با FF1 یعنی دیتامون 9 بیتی است.

برای ارسال به صورت 8 بیتی.

برای دریافت هم به صورت زیر عمل می‌کنیم:

برای تبدیل کردن و ازدست ندادن بخشی از دیتا، از int استفاده کردیم.

خب تا اینجای ماجرا ارسال و دریافت پروتکل UART بدون اینتراپت رو یاد گرفتیم اما هر عملی با اینتراپتش خوبه.

خب با این تکه کد می‌تونیم وقفه پروتکل UART رو فعال کنیم که خیلی هم سادست.

و با این تکه کد می‌تونیم اولویت وقفه پروتکل UART را مشخص کنیم.

تابع زیر روال وقفه پروتکل UART دریافت هم به همین صورت خواهد بود.

Ch هم متغیری است که هر بایت در این قرار می‌گیرد. مثلا من خودم یه آرایه دو بایتی از جنس char تعریف می‌کنم و مقدار خانه صفرم رو اختصاص می‌دم به دیتای دریافتی و بعد دریافت هر بیت در آرایه دیگری اتقالش می‌دم برا دستگرمی خوبه حتما امتحان کنید.

خب اینم یه تمرین برای تایپ دیتا در ترمینال و برگرداندن همون مقدار به خود ترمینال.

امیدوارم که این مطلب هم برای شما مفید واقع شود.

اطلاعات
7
0
لینک و اشتراک
profile

مهدی حسن‌زاده

متخصص الکترونیک

فارغ التحصیل رشته الکترونیک علاقمند به مباحث تخصصی در زمینه میکروکنترلرARMو Signal processing

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

profile
رامین نقی زاده خسروشاهی گفت :
۱۴۰۳-۰۱-۱۷ ۱۵:۲۱

سلام آموزشتون ناقص هست و وقفه کار نمینه
باید بیت پنجم از ریجیستر cr1 رو هم روشن کنید تا وقفه شروع بکار کنه

profile
Zeus ‌ گفت :
۱۴۰۳-۰۱-۱۹ ۰۸:۴۸

سلام دوست عزیز – ممنون برای دقت شما
مطلب رو اصلاح میکنیم

profile
سامان گفت :
۱۴۰۰-۱۱-۱۳ ۲۳:۲۷

من چندین منبع مطالعه کردم ولی توضیحات شما نسبت به بقیه خیلی بهتر و قابل فهم تر بود. از شما تشکر میکنم و امیدوارم باز ادامه بدید و مطالب بیشتری رو برامون بذارین. منتظر مطالب جدیدتر هستیم…

profile
saberyari94 گفت :
۱۳۹۹-۰۳-۱۱ ۲۰:۵۲

خیلی ممنون از توضیحات خوبتون.منتظر قسمت های بعدی آموزش ریجیستری هستیم.

profile
مهدی حسن‌زاده گفت :
۱۴۰۰-۰۶-۰۴ ۲۱:۴۸

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

profile
saberyari94 گفت :
۱۳۹۹-۰۳-۰۵ ۲۲:۳۱

اقا دستت درد نکنه مرسی خیلی خوبه

profile
مهدی حسن‌زاده گفت :
۱۴۰۰-۰۶-۰۴ ۲۱:۴۹

دلخوشی من یاد گیری دوستامه -درکنار هم و باهم
امیدوارم موفق باشید

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله