جلسه سی و ششم _ بررسی توابع و دستورات مربوط به واحد RTC در نرم افزار Keil
در این جلسه قصد داریم تا با دستورات و توابع مربوط به واحد RTC آشنا شویم، پس در ابتدا برنامه تولید شده توسط نرم افزار STM32CubeMX را باز می کنیم و به سراغ فایل main.h می رویم و به توضیح خطوط مربوط به واحد RTC می پردازیم.
استراکچر مربوط به واحد RTC می باشد.
معرفی تابع مربوط به تنظیمات RTC
تابع مربوط به تنظیمات واحد RTC می باشد. همانطور که در تصویر بالا نیز مشخص است مقادیر تنظیم شده در نرم افزار STM32CubeMX برای مقادیر اولیه ساعت و تاریخ در این قسمت تنظیم می شوند.
برای دسترسی به دیگر توابع مربوط به RTC باید به فایل stm32f1xx_hal_rtc.c مراجعه نمایید. برای دسترسی به این فایل باید در پوشه Drivers/STM32F1xx_HAL_Driver بر روی فایل stm32f1xx_hal_rtc.c دابل کلیک نماییم.
(HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format
از این تابع برای تنظیم مقادیر ساعت شامل ساعت، دقیقه و ثانیه استفاده می شود که دارای سه آرگومان می باشد که در آن استراکچر مربوط به RTC و مقادیر تنظیم شده در استراکچری که مقادیر مربوط به ساعت در آن تنظیم شده است و از نوع RTC_TimeTypeDef می باشد و آرگومان سوم مشخص می کند که فرمت دیتا مورد نظر باینری یا BCD باشد.
(HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format
از این تابع به منظور خواندن اطلاعات مربوط به ساعت استفاده می شود . این تابع دارای سه آرگومان می باشد که در ابتدا استراکچر مربوط به RTC در آن قرار می گیرد و پس از آن استراکچری از نوع RTC_TimeTypeDef که قصد داریم تا مقادیر مربوط به ساعت را در آن ذخیره نماییم به تابع ارسال می شود و در آرگومان آخر فرمت دیتای خوانده شده را مشخص می کند.
(HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format
از این تابع برای تنظیم مقادیر تاریخ شامل سال، ماه، روز و روز هفته استفاده می شود که دارای سه آرگومان می باشد که در آن استراکچر مربوط به RTC و مقادیر تنظیم شده در استراکچری که مقادیر مربوط به تاریخ در آن تنظیم شده است و از نوع RTC_DateTypeDef می باشد و آرگومان سوم مشخص می کند که فرمت دیتا مورد نظر باینری یا BCD باشد.
(HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format
از این تابع به منظور خواندن اطلاعات مربوط به تاریخ استفاده می شود . این تابع دارای سه آرگومان می باشد که در ابتدا استراکچر مربوط به RTC در آن قرار می گیرد و پس از آن استراکچری از نوع RTC_DateTypeDef که قصد داریم تا مقادیر مربوط به تاریخ را در آن ذخیره نماییم به تابع ارسال می شود و در آرگومان آخر فرمت دیتای خوانده شده را مشخص می کند.
درون برنامه ما نیز خطوط و دستوراتی را اضافه نموده ایم تا بتوانیم اطلاعات مربوط به ساعت و تاریخ را بخوانیم و آنها را روی نمایشگر نمایش دهیم
استراکچر Time وظیفه خواندن اطلاعات مربوط به ساعت را دارد و استراکچر Date اطلاعات مربوط به تاریخ را می خواند.
برنامه پس از تنظیمات مربوط به LCD و نمایش متن مورد نظر پس از یک توقف 2 ثانیه ای وارد حلقه while می شود و درون حلقه اطلاعات مربوط به ساعت و تاریخ خوانده می شوند و متغیر های Time و Date ریخته می شوند و با فرمت و ترتیب مورد نظر اطلاعات به یک رشته تبدیل می شوند و بر روی ال سی دی نمایش داده می شوند. با توجه به اینکه این دستورات درون یک حلقه while قرار دارند بصورت پیوسته ساعت و تاریخ از واحد RTC خوانده می شوند و بر روی ال سی دی نمایش داده می شوند.
در انتها می توانید شماتیک مربوط به این جلسه و برنامه (keil , STM32CubeMX) آنرا دانلود نمایید.
دلتون شاد و لبتون پر خنده
محمد هادی دشتی
برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST ) کلیک کنید.
برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام ) کلیک کنید.
برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.
برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.
برای مشاهده آموزش جلسه سیو دوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش اول)) کلیک کنید.
برای مشاهده آموزش جلسه سی و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش دوم)) کلیک کنید.