آموزش میکروکنترلر STM32 قسمت یازدهم: رابط RTC

0
181
رابط RTC
رابط RTC

آموزش میکروکنترلر STM32

در قسمت دهم از آموزش میکروکنترلر STM32 کار با DMA رابط سریال UART را آموزش دادیم. در این قسمت از آموزش میکروکنترلر STM32 قصد داریم به آموزش تنظیمات نرم‌افزار CubeMX برای رابط RTC در خانواده CORTEXM3 بپردازیم. در مجموعه آموزش میکروکنترلر STM32 با ما همراه باشید.

رابط RTC در خانواده CORTEXM3 :

برای شروع راه‌اندازی قسمت RTC مانند دفعات قبل، ابتدا نرم‌افزارCUBEMX را باز می‌کنیم و میکروکنترلر STM32F103C8T6 را انتخاب می‌کنیم و فرکانس را روی همان 72مگاهرتز می‌گذاریم و حال باید قسمت RTC را فعال‌کنیم، بدین‌منظور مطابق عکس‌زیر تنظیمات Pinout را انجام می‌دهیم.

تنظیمات Pinout
تنظیمات Pinout

 

 

همان‌طورکه در عکس‌بالا میبینید ما عمداً گزینه No RTC Output را انتخاب می‌کنیم تا بتوانیم از وقفه آلارم نیز استفاده‌کنیم. در مرحله‌بعد باید منبع کلاک RTC را انتخاب‌کنیم، ما برای منبع کلاک در این قسمت چند گزینه متفاوت داریم بهترین گزینه استفاده‌از کریستال ساعت با فرکانس ۳۲۷۶۸هرتز خارجی است. بدین‌منظور طبق‌عکس زیر پایه‌های مربوط‌به این کریستال را فعال می‌کنیم.

فعال‌سازی پایه‌های کریستال ساعت
فعال‌سازی پایه‌های کریستال ساعت

 

در این حالت همان‌طورکه در عکس‌بالا مشاهده می‌کنید پین‌های PC14 و PC15 به امر اتصال کریستال ساعت اختصاص پیدا می‌کند و دیگر نمی‌توانید از آن پین‌ها به‌عنوان پورت استفاده‌کنید. حال به برگه Clock Configuration می‌رویم و گزینه کریستال ساعت را برای RTC مطابق عکس‌زیر انتخاب می‌کنیم.

فعال‌سازی کریستال ساعت برای RTC
فعال‌سازی کریستال ساعت برای RTC

 

توجه‌داشته‌باشید دربعضی میکروکنترولرهای چینی اسیلاتور بخش کریستال ساعت کار نمی‌کند و درهنگام اجرای برنامه به قسمت پیکره‌بندی آن که می‌رسیم برنامه متوقف می‌شود. برای این میکروکنترولرها می‌توانید گزینه اول یعنی گزینه HSE_RTC را انتخاب‌کنید، که تقریبا دقت مناسبی را در RTC فراهم می‌کند ولی به‌خوبی کریستال ساعت نیست. درمرحله‌ی بعد به صفحه‌ی Configuration می‌رویم و دکمه‌ی RTC را می‌زنیم تا کادر زیر ظاهرشود.

HSE_RTC
HSE_RTC

 

همانطورکه در عکس‌بالا میبینیم Data Format را باید از نوع Binary انتخاب‌کنیم و در قسمت General هم تنظیمات حتما باید روی Automatic باشد تا به‌صورت خودکار بوسیله تقسیم کننده فرکانس یک هرتز از منبع کلاک RTC برای این بخش فراهم گردد، ولی مثلا برای میکروهای سری CORTEXM4 مسئله به این شکل نیست، که در بخش خودش توضیح‌داده خواهدشد. در مرحله‌ی بعد به NVIC Setting همین تنظیمات می‌رویم و هر دو وقفه نشان‌داده‌شده در شکل‌زیر را که اولی مربوط‌به وقفه عمومی RTC می‌شود و دومی هم به وقفه رویداد الارم RTC مربوط می‌شود را فعال می‌کنیم.

فعال‌سازی رویداد الارم RTC
فعال‌سازی رویداد الارم RTC

 

پس‌از این مرحله تنظیمات را OK می‌کنیم و از همان صفحه Configuration دکمه NVIC را می‌زنیم و طبق عکس‌زیر در قسمت موردنظر دو تیک مربوط‌به وقفه‌های مورداستفاده RTC را فعال می‌کنیم.

فعال‌سازی وقفه‌های مورد استفاده RTC
فعال‌سازی وقفه‌های مورد استفاده RTC

 

در مرحله بعد تنظیمات را OK می‌کنیم و با زدن دکمه Generate از نرم‌افزار خروجی می‌گیریم توجه‌داشته‌باشید در این برنامه ما UART1 را قبلاً برای نمایش اطلاعات انتخاب کرده‌ایم. بعداز خروجی‌گرفتن از نرم‌افزار Cubemx وارد محیط نرم‌افزار Keil می‌شویم حال باید در ابتدا توابع عمومی رابط RTC را بررسی‌کنیم.

HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)

 

بوسیله تابع بالا می‌توانید زمان را که تشکیل‌شده از ساعت به همراه دقیقه و ثانیه داخل یک ساختار از نوع RTC_TimeTypeDef دریافت‌کنید.

در قسمت دوازدهم قصد داریم جزئیات ساختار RTC_TimeTypeDef را برای شما توضیح دهیم. با ما همراه باشید.

 

 

 

منبع:‌سیسوگ

برای این مقاله نظر بگذارید:

لطفا دیدگاه خود را بنویسید
لطفا نام خود را وارد کنید